【发布时间】:2021-01-31 04:19:35
【问题描述】:
我正在使用相机意图。在 Android 10 之前一切正常,但在 Android 11 中我得到的结果代码为 0。
-
清单权限
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> -
带有文件创建的意图函数:
private void openCameraApp() { Intent picIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE). addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); try { String file_path = Environment.getExternalStorageDirectory().toString() + "/" + mContext.getResources().getString(R.string.app_name); File dir = new File(file_path); if (!dir.exists()) dir.mkdirs(); imagePath = new File(dir, mContext.getResources().getString(R.string.app_name) + System.currentTimeMillis() + ".png"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { picIntent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID, imagePath)); setUri(FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID, imagePath)); } else { picIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imagePath)); setUri(Uri.fromFile(imagePath)); } ((Activity) mContext).startActivityForResult(picIntent, CAMERA_REQUEST); } catch (Exception e) { logger.e(e); } }
我在清单文件的应用标签中添加了android:requestLegacyExternalStorage="true"。
【问题讨论】:
标签: android camera android-11