ACTION_IMAGE_CAPTURE 在三星设备上模糊

ACTION_IMAGE_CAPTURE on samsung device blurred

我正在使用此代码打开相机意图:

Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePicture.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
startActivityForResult(takePicture, 0);

它工作正常,但只适用于 android 8 的三星设备 (8) 拍照后预览全是模糊的, 有人有这种奇怪的行为吗?

(我也试过没有 putExtra 行)

以下是屏幕截图:

]3

您必须在相机意图中额外提供照片路径 Uri,如:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), mUserID + ".jpg");
Uri photoPath = getUriForFile(mContext, BuildConfig.APPLICATION_ID, file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoPath);   //--> here 
startActivityForResult(Intent.createChooser(intent, "Complete action using"), REQUEST_CODE_CAMERA);

然后,您可以在 onActivityResult 中获取该 Uri 本身中的捕获图像