簡體   English   中英

Android 錯誤 - 訪問被拒絕無法保存裁剪圖像

[英]Android Error - Access denied unable to save cropped image

我有一個 Ionic 5/Angular 應用程序,它使用 Ionic Native Camera 插件來拍照和裁剪圖像。 在我更新到 Android 11(使用注釋 10 plus)之前,該功能運行良好。 更新后,裁剪時拋出如下錯誤:無法保存裁剪后的圖像 - 訪問被拒絕。

TS代碼:

takePicture() {
    this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.READ_EXTERNAL_STORAGE, 
    this.androidPermissions.PERMISSION.WRITE_EXTERNAL_STORAGE]);

    const options: CameraOptions = {
      quality: 100,
      targetHeight: 1920,
      targetWidth: 1080,
      sourceType: 1, // CAMERA
      destinationType: 0, // DATA_URL
      encodingType: this.camera.EncodingType.JPEG,
      correctOrientation: true,
      allowEdit: true
    };

    this.camera.getPicture(options).then((imageData) => {
     // Persist image data
    });
  }

應用程序在其他設備上運行良好。 還檢查了我的應用程序、圖庫應用程序和照片編輯器應用程序是否具有存儲和相機權限。 我可以拍照並打開裁剪器 - 點擊完成后,會顯示“訪問被拒絕”消息,緊隨其后的是“無法保存裁剪的圖像”。

開放式攝像頭

裁剪圖像

單擊完成 - 訪問被拒絕錯誤

裁剪錯誤

  1. 什么可能導致錯誤?
  2. 如何查看哪個應用程序設置為設備的默認裁剪應用程序?
  3. 如何清除/重置默認裁剪應用程序?

注意:我在另一台運行 Android 11 的設備上對此進行了測試,這導致了同樣的錯誤。

嘗試通過使用屬性android:requestLegacyExternalStorage更新您的 AndroidManifest.xml 來選擇退出范圍存儲:

<manifest ... >
  <application android:requestLegacyExternalStorage="true" ... >
    ...
  </application>
</manifest>

來源: https://developer.android.com/training/data-storage/use-cases#opt-out-scoped-storage

請檢查從 Android 11 到外部存儲的更改。

您必須對 Android 11 使用一種方法,點擊上面的鏈接並更新您的照片編輯器應用程序。

就我而言,“裁剪圖像”導致了這個問題。 因此,如果您不關心裁剪,請將“ allowEdit:true ”更改為“ allowEdit:false ”。 然后錯誤將被刪除。 但是,不要忘記您將無法裁剪圖片。

如果可以的話,我最好的選擇是降級。 它在上一個版本有效,對

暫無
暫無

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

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