uni-app Google play 新政策问题急需帮助解决 Google play更新了关于照片和视频访问权限新政策 导致不能使用uni.chooseImage
uni-app Google play 新政策问题急需帮助解决 Google play更新了关于照片和视频访问权限新政策 导致不能使用uni.chooseImage
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
PC开发环境 | Mac | CLI |
手机系统 | Android | |
手机系统版本号 | Android 13 | |
手机厂商 | 三星 | |
手机机型 | Galaxy Z Flip4 (SM-F721U/DS) | |
页面类型 | vue | |
vue版本 | vue3 | |
打包方式 | 云端 | |
CLI版本号 | 3.0.0-4000820240401001 |
操作步骤:
- Google play 新政策问题,急需帮助解决
预期结果:
- Google play 新政策问题,急需帮助解决
实际结果:
- Google play 新政策问题,急需帮助解决
bug描述:
- Google play 更新了关于照片和视频访问权限的新政策
https://support.google.com/googleplay/android-developer/answer/14115180 - 目前调用 uni.chooseImage 且勾选 相机和相册模块 和政策冲突,会注册 android.permission.READ_MEDIA_IMAGES 和 android.permission.READ_MEDIA_VIDEO
- 非图库类APP,大部分只能使用提供的图片选择器(https://android-developers.googleblog.com/2023/04/photo-picker-everywhere.html),希望提供图片选择器的通用 API
- 当前移除 android.permission.READ_MEDIA_IMAGES 权限,无法成功进入相册进行选择
已经在处理了,会提供选项和新api,请关注新版。
官方发版前,开发者可以向google申请延期,它是25年1月22日才强制执行
感恩
新应用第一次提交审核,如果没有移除 android.permission.READ_MEDIA_IMAGES 和 android.permission.READ_MEDIA_VIDEO,应该是不允许提交审核的!
回复 ksa: 你是提交审核后给你拒绝回来的?
回复 ksa: 看google公告没这么说啊,实际是吗?
回复 DCloud_heavensoft: 解决了吗,APP被下架两次了
你好 你这个问题解决了吗
怎么处理呀,底层的我们也改不了,官方有啥解决方法吗
针对Google Play关于照片和视频访问权限的新政策,导致不能使用 uni.chooseImage
的问题,我们可以通过调整应用权限请求策略以及使用替代方案来解决。以下是一个示例代码,展示如何在uni-app中实现这一调整。
1. 权限请求策略调整
首先,确保在 manifest.json
中正确声明了必要的权限:
"mp-weixin": {
"appid": "your-app-id",
"permission": {
"scope.userInfo": {
"desc": "你的用户信息将用于小程序登录"
},
"scope.userLocation": {
"desc": "你的位置信息将用于小程序定位"
},
// 添加照片和视频权限声明(仅作为示例,实际声明方式需参考Google Play要求)
"android.permission.READ_EXTERNAL_STORAGE": {
"desc": "应用需要访问您的存储设备以选择照片和视频"
},
"android.permission.WRITE_EXTERNAL_STORAGE": {
"desc": "应用需要写入您的存储设备以保存照片和视频"
}
}
},
"app-plus": {
"distribute": {
"google": {
// 其他Google Play配置
}
},
"permissions": {
"ReadExternalStorage": {
"desc": "需要访问您的存储设备以选择照片和视频"
},
"WriteExternalStorage": {
"desc": "需要写入您的存储设备以保存照片和视频"
}
}
}
注意:uni-app中的权限声明方式可能需要根据实际使用的平台(如HBuilderX)和Google Play的具体要求进行调整。
2. 使用替代方案
由于直接使用 uni.chooseImage
可能受限,我们可以考虑使用原生插件或自定义组件来替代。以下是一个使用原生插件的示例:
插件安装
在HBuilderX中,通过插件市场安装一个支持照片和视频选择的原生插件,如 uni-file-picker
。
插件使用
// 引入插件
const filePicker = require('@dcloudio/uni-file-picker');
// 调用插件选择照片或视频
filePicker.choose({
count: 9, // 最多可以选择的文件个数
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
extension: ['jpg', 'png', 'gif', 'mp4'], // 可选择文件的类型
success: function (res) {
console.log(JSON.stringify(res.tempFiles));
// 处理选中的文件
},
fail: function (err) {
console.error(err);
}
});
结论
通过上述方法,我们可以调整应用权限请求策略,并使用原生插件或自定义组件来替代 uni.chooseImage
,从而满足Google Play的新政策要求。在实际操作中,请确保遵循Google Play的最新政策和指南,以避免应用被下架或功能受限。