android - Android 错误 - 访问被拒绝无法保存裁剪的图像
问题描述
我有一个 Ionic 5/Angular 应用程序,它使用 Ionic Native Camera 插件来拍照和裁剪图像。在我更新到 Android 11(使用 note 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
});
}
应用程序在其他设备上运行良好。还检查了我的应用程序、图库应用程序和照片编辑器应用程序是否具有存储和相机权限。我可以拍照并打开裁剪器 - 点击完成后,会显示“访问被拒绝”消息,紧随其后的是“无法保存裁剪的图像”。
- 什么可能导致错误?
- 如何查看哪个应用程序设置为设备的默认裁剪应用程序?
- 如何清除/重置默认裁剪应用程序?
注意:我在另一台运行 Android 11 的设备上对此进行了测试,结果出现了同样的错误。
解决方案
请检查 Android 11 对外部存储的更改。
- https://developer.android.com/training/data-storage/use-cases#modify-delete-media
- https://developer.android.com/training/data-storage/use-cases#access-file-paths
您必须对 Android 11 使用一种方法,点击上面的链接并更新您的照片编辑器应用。