2017-05-10 15 views
0

私は非常に奇妙な問題に直面しています。カメラアクティビティから画像をクリックすると、3つのオプション(アイコン) - OK、Retake and Cancelを含む確認ページが表示されます。 RetakeボタンとCancelボタンは正常に機能していますが、OKボタンをクリックした後は何も起こりません。。私の活動に戻っていません。私は同じような投稿を見ましたが、私のために働いた人はいませんでした。私はすべての許可を書いて書き込みました。カメラは、私が問題を扱う際に行ったいくつかの観察です。Android - カメラOKボタンが動作しない - Android 6.0

1.On アンドロイド5.0.1 - LENEVOヨガTAB 3、同じコード、OK]ボタンが正常に動作。

2.On アンドロイド6.0 - LENEVOヨガTAB 3、同じコードは、OKボタン(書き込み、カメラ、権限読んで追加された)が動作していません。

3.On アンドロイド6.0 - 作業罰金(許可は読みます追加、書き込み、カメラ) - LeEco 2、同じコード、ので、キャプチャ後に戻っ活動に戻っている、NO OK]ボタンを持っていません。

そのどのように私は私のカメラの活動を開封しております

public final static String PRE_CAMERA_FILE_NAME = "my_image"; 

public final static String FILE_DIRECTORY = 
     (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) ? 
       Environment.getExternalStorageDirectory().getAbsolutePath() : 
       Environment.getDataDirectory()) + File.separator + "Images"; 

private void openCamera() { 
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    File mCameraFile = new File(FILE_DIRECTORY, String.valueOf(PRE_CAMERA_FILE_NAME + System.currentTimeMillis()) + ".jpg"); 
    if(!mCameraFile.exists()){ 
     mCameraFile.mkdirs(); 
    } 
    System.out.println("Path:=" + mCameraFile.getAbsolutePath()); 
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { 
     mCameraFileUri = FileProvider.getUriForFile(getContext(), 
       BuildConfig.APPLICATION_ID + ".provider", mCameraFile); 
    } else { 
     mCameraFileUri = Uri.fromFile(mCameraFile); 
    } 
    cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mCameraFileUri); 
    cameraIntent.putExtra("return-data", true); 
    getActivity().startActivityForResult(cameraIntent, REQUEST_TYPE_CAMERA); 
} 

OnActivityResult:

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (mOnFileChooseListener != null && resultCode == Activity.RESULT_OK) { 
     String path = ""; 
     if (requestCode == REQUEST_TYPE_CAMERA) { 
      path = mCameraFileUri.getPath(); 
     } else if (requestCode == REQUEST_TYPE_UPLOAD_PDF_OR_PHOTO && data != null) { 
      path = FileUtils.getFilePath(getContext(), data.getData()); 
     } 
     mOnFileChooseListener.onFileSelected(path); 
    } 
} 

権限が追加されました。

[enter image description here]

なぜこれが起こっている誰もが答えていただけますか?前もって感謝します 。

+0

その時点で[OK]ボタンをクリックすると、デバイスの外部ストレージまたは内部ストレージに保存されたクリックした画像が表示されます。 –

+0

いいえ、ファイルは作成されていますが、オープンしていないと入出力エラーが発生します。 –

+0

私はMarshmallow権限クラスを追加して、アプリケーションに読み込み、書き込みなどを許可する必要があると思います。これは私の回答を参照してください。http://stackoverflow.com/questions/40504867/need-to-access-the-system-permission/40505346 #40505346 –

答えて

1

私は同じ問題があります。 私の場合は、保存パスが正しくありませんでした。私はsameFile.mkdirs()sameFile.getParentFile().mkdirs()に変更しました。 あなたの場合、mCameraFile.mkdirs()はファイル名のディレクトリを作成します。 私の仕事コード

File file = new File(getContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES) 
     + File.separator 
     + screenState.catalogKey, 
     idImg.toString()); 
if (file.getParentFile().exists() || file.getParentFile().mkdirs()) { 
    mOutputFileUri = Uri.fromFile(file); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, mOutputFileUri); 
    startActivityForResult(intent, ConstantManager.I_CAMERA_RESULT); 
} 
関連する問題