nopilot
nopilot
  • 发布:2024-07-21 12:11
  • 更新:2024-07-29 19:11
  • 阅读:121

【报Bug】Android配置 targetSdkVersion设为34后无法获取保存图片到相册的权限

分类:uni-app

产品分类: 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,仍然循环弹窗,无法正确授权,无法正常保存图片到相册

bug描述:

使用最新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?

2024-07-21 12:11 负责人:无 分享
已邀请:
BFC

BFC

你好, WRITE_EXTERNAL_STORAGE 这个权限在android 34已经废弃了。

要回复问题请先登录注册