//let status = await permision.requestAndroidPermission(”WRITE_EXTERNAL_STORAGE“);
let status = await permision.requestAndroidPermission(”MANAGE_EXTERNAL_STORAGE“);
uni.saveImageToPhotosAlbum({
filePath,
success: () => {。。。},
fail: () => {}
})
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: ventura13.01
HBuilderX类型: 正式
HBuilderX版本号: 4.23
手机系统: Android
手机系统版本号: Android 14
手机厂商: 三星
手机机型: S22
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
//let status = await permision.requestAndroidPermission(”WRITE_EXTERNAL_STORAGE“);
let status = await permision.requestAndroidPermission(”MANAGE_EXTERNAL_STORAGE“);
uni.saveImageToPhotosAlbum({
filePath,
success: () => {。。。},
fail: () => {}
})
//let status = await permision.requestAndroidPermission(”WRITE_EXTERNAL_STORAGE“);
let status = await permision.requestAndroidPermission(”MANAGE_EXTERNAL_STORAGE“);
uni.saveImageToPhotosAlbum({
filePath,
success: () => {。。。},
fail: () => {}
})
弹窗后可以直接授权,然后正常保存图片到相册
弹窗后打开“应用程序信息-权限”页面,只有“电话”,“相机”,“照片和视频”三个可选权限,允许授权后,返回APP,仍然循环弹窗,无法正确授权,无法正常保存图片到相册
使用最新hbuilder x 4.23云打包,设置targetSdkVersion = 34,提交google play。然后发现读取相册图片上传、保存图片到相册的权限一直弹窗请求都不成功(见截图)。代码之前在30的时候都正常工作。
尝试了:1)manifest增加了MANAGE_EXTERNAL_STORAGE,2)动态权限请求从之前的WRITE_EXTERNAL_STORAGE改成请求MANAGE_EXTERNAL_STORAGE,但没有生效。
而且MANAGE_EXTERNAL_STORAGE这个权限过于宽泛,容易被google play拒审。
看google的官方帖子似乎是保存图片不需要单独申请权限,可以调用MediaStore API,但代码用的uni.saveImageToPhotosAlbum似乎也不支持34?