簡體   English   中英

Android ActivityResultContracts.TakePicture() 權限被拒絕

[英]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 權限。

  1. Go 到您的app模塊的 AndroidManifest.xml 文件。
  2. 單擊代碼區域下方的Merged Manifest按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM