我再次需要你的帮助。我正在使用 Camera Intent,我不明白我的代码有什么问题,直到 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); 尝试 {
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, …Run Code Online (Sandbox Code Playgroud)