Android 11 使用相机捕捉图像

tow*_*hid 5 java camera android image capture

文档 - https://developer.android.com/training/camera/photobasics

我已按照所有必需的步骤使用相机捕获图像。

private void dispatchTakePictureIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { // its always null
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    }
}
Run Code Online (Sandbox Code Playgroud)

takePictureIntent.resolveActivity(getPackageManager())- 此行始终返回 null。如果我跳过此检查,相机会打开但应用程序崩溃。

Pav*_*e37 13

Jaakko 的回答是正确的,这里是一个快速解释:

代码:

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

这仅适用于默认相机应用程序。如果您的应用使用了某些 3rd 方相机,您可以在此处找到一些信息:https : //commonsware.com/blog/2020/08/16/action-image-capture-android-r.html


小智 5

将这些添加到清单部分内的 AndroidManifest.xml 中:

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