[英]Android ActivityResultContracts.TakePicture() Permission Denied
我正在使用最新的 Android 活动结果 API 使用设备相机拍照:
private val takePictureActivityResult =
registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess ->
if (isSuccess) {
if (imageUri != Uri.EMPTY) {
// SAVE image to external storage
currentImagePath = ImageUtils.saveImageToExternalStorage(this,imageUri)
addImageView.setImageURI(imageUri)
}
}
}
这会导致 SecurityException:
java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.google.android.GoogleCamera/com.android.camera.activity.CaptureActivity clip={text/uri-list {...}} (has extras) } from ProcessRecord{81d69c 11563:com.myapp/u0a242} (pid=11563, uid=10242) with revoked permission android.permission.CAMERA
根据谷歌的文档:
If your app targets M and above and declares as using the Manifest.permission.CAMERA permission which is not granted, then attempting to use this action will result in a SecurityException.
我没有在清单中使用android.permission.CAMERA
,应用程序也没有明确向用户请求相机权限。 我不明白如果应用程序从未请求过权限,它是如何被撤销的。 我确实将图像保存到设备存储中,因此这些权限在清单中。
提前感谢任何可以解释这个问题的人。
仔细检查您的 APK 中没有 CAMERA 权限。
app
模块的 AndroidManifest.xml 文件。Merged Manifest
按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.