【问题标题】:Android 11 Capture image using CameraAndroid 11 使用相机拍摄图像
【发布时间】:2020-09-18 06:49:28
【问题描述】:

文档 - 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);
    }
}

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

【问题讨论】:

标签: java android image camera capture


【解决方案1】:

Jaakko 的回答是正确的,这里有一个简单的解释:

代码:

<manifest package="your.package.name">
<queries>
    <intent>
        <action android:name="android.media.action.IMAGE_CAPTURE" />
    </intent>
</queries>
</manifest>

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

【讨论】:

  • 谢谢救我一命!
  • 但是,这甚至不需要 MANAGE_EXTERNAL_MEDIA 权限!!!
【解决方案2】:

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

<queries>
  <intent>
    <action android:name="android.media.action.IMAGE_CAPTURE" />
  </intent>
</queries>

【讨论】:

    猜你喜欢
    • 2011-10-10
    • 2011-07-15
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多