Android相机意图在Android 11中没有响应

dev*_*per 8 camera android android-11

我再次需要你的帮助。我正在使用 Camera Intent,我不明白我的代码有什么问题,直到 Android 10 一切正常,但在 Android 11 中,我得到了结果代码 0。我在下面共享代码,请帮助我我的方法有什么问题:

  1. 清单权限 <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" />

  2. 具有文件创建的意图函数:

    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, CAMERA_REQUEST);
    
         } catch (Exception e) {
             logger.e(e);
         }
     }
    
    Run Code Online (Sandbox Code Playgroud)

我已经android:requestLegacyExternalStorage="true"在清单文件的应用程序标签中添加了。如果代码发布管理不善,我非常抱歉,因为我已经尝试正确发布它,但仍然没有对齐。提前致谢,请帮忙。

Coo*_*ind 20

请参阅Intent.resolveActivity 在 API 30 中返回 null。也许 AndroidManifest 有问题。

<queries>
    <intent>
        <action android:name="android.media.action.IMAGE_CAPTURE" />
    </intent>
</queries>
Run Code Online (Sandbox Code Playgroud)

或参阅无法在 Android 11 上以编程方式拍照 - 意图返回取消状态