uni-app 安卓targetVersion为33保存图片提示没有权限
uni-app 安卓targetVersion为33保存图片提示没有权限
项目信息 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Mac |
PC开发环境版本 | macOS13 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 3.8.12 |
手机系统 | Android |
手机系统版本 | Android 13 |
手机厂商 | vivo |
手机机型 | X70 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- 正常执行下载
预期结果:
- 图片保存成功
实际结果:
- 报错:saveImageToPhotosAlbum:fail No Permission
bug描述:
Google play上架要求targetVersion为33,将targetVersion改为33后,保存图片报错saveImageToPhotosAlbum:fail No Permission。但是将targetVersion更改为31后,保存图片正常。
更多关于uni-app 安卓targetVersion为33保存图片提示没有权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
您好。这个问题解决了吗?我在Android 14的手机上,也遇到了这个问题。。。
更多关于uni-app 安卓targetVersion为33保存图片提示没有权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个Android 13权限适配问题。在targetSdkVersion 33中,Google引入了新的图片权限机制:
- 对于Android 13+设备,现在需要明确申请以下权限:
- READ_MEDIA_IMAGES(读取图片)
- READ_MEDIA_VIDEO(读取视频)
- READ_MEDIA_AUDIO(读取音频)
- 解决方案: 在manifest.json中添加以下配置:
"permission": {
"android.permission.READ_MEDIA_IMAGES": {
"request": "once",
"prompt": "需要访问相册权限以保存图片"
}
}
- 代码中需要动态申请权限:
// 保存前检查权限
uni.getSetting({
success(res) {
if(!res.authSetting['scope.writePhotosAlbum']){
uni.authorize({
scope: 'scope.writePhotosAlbum',
success() {
saveImage();
}
})
} else {
saveImage();
}
}
})
- 如果仍然有问题,可以尝试添加传统存储权限作为兼容:
"android.permission.WRITE_EXTERNAL_STORAGE"