关于 uni.scanCode 的相册权限问题,这确实是 Google Play 上架时常见的审核问题。根据知识库内容,为你分析并提供解决方案:
问题根源
在 App 端,uni.scanCode 默认的相册选择功能使用的是需要申请相册权限的方式(类似 custom 模式)。根据 Google Play 照片和视频权限政策,应用需要向 Google 证明获取相册权限的合理性,否则会被拒绝上架。
解决方案
1. 禁止相册选择(仅相机扫码)
如果业务允许只使用相机扫码,可通过设置 onlyFromCamera 参数来避免相册权限问题:
uni.scanCode({
onlyFromCamera: true, // 禁止从相册选择,只允许相机扫码
success: (res) => {
console.log(res.result)
}
})
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
2. 使用系统方式选择图片(推荐)
对于 uni-app 项目,可以使用插件 uni-chooseSystemMedia 来绕过权限限制。该插件使用系统 API 选择图片,不需要申请 READ_MEDIA_IMAGES 等权限:
import { chooseSystemMedia } from "@/uni_modules/uni-chooseSystemMedia"
// 先使用系统选择器选择图片
chooseSystemMedia({
count: 1,
mediaType: ['image'],
success: (e) => {
// 获取图片路径后,使用其他方式解析二维码
const filePath = e.filePaths[0]
// 调用二维码解析逻辑...
}
})
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
使用该插件时,需要在 manifest.json 中移除相关权限:
"android": {
"permissions": [],
"removePermissions": [
"android.permission.READ_MEDIA_IMAGES",
"android.permission.READ_MEDIA_VIDEO"
]
}
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
3. uni-app x 的 system 方式
如果是 uni-app x 项目,uni.chooseImage 支持 albumMode: 'system' 参数,使用系统选择器无需申请权限,但 uni.scanCode 底层是否采用类似机制,知识库中暂无相关实现细节。
关于 chooseMedia 的疑问
你提到为什么 uni.scanCode 不使用 chooseMedia 来选择照片以避免权限问题,知识库中暂未找到关于此设计决策的具体说明。
从现有资料来看,uni.chooseMedia 和 uni.chooseImage 在 App 端同样存在 custom 和 system 两种模式之分。如果 uni.scanCode 底层使用的是 custom 模式,就会触发权限申请;而使用 system 模式(系统选择器)则不会。
建议在实际开发中,如果 Google Play 审核因权限问题拒绝,优先考虑使用 onlyFromCamera: true 仅启用相机,或结合 uni-chooseSystemMedia 插件自定义扫码流程。
2 个回复
Ask小助手
关于
uni.scanCode的相册权限问题,这确实是 Google Play 上架时常见的审核问题。根据知识库内容,为你分析并提供解决方案:问题根源
在 App 端,
uni.scanCode默认的相册选择功能使用的是需要申请相册权限的方式(类似custom模式)。根据 Google Play 照片和视频权限政策,应用需要向 Google 证明获取相册权限的合理性,否则会被拒绝上架。解决方案
1. 禁止相册选择(仅相机扫码)
如果业务允许只使用相机扫码,可通过设置
onlyFromCamera参数来避免相册权限问题:2. 使用系统方式选择图片(推荐)
对于 uni-app 项目,可以使用插件 uni-chooseSystemMedia 来绕过权限限制。该插件使用系统 API 选择图片,不需要申请
READ_MEDIA_IMAGES等权限:使用该插件时,需要在
manifest.json中移除相关权限:3. uni-app x 的 system 方式
如果是 uni-app x 项目,
uni.chooseImage支持albumMode: 'system'参数,使用系统选择器无需申请权限,但uni.scanCode底层是否采用类似机制,知识库中暂无相关实现细节。关于 chooseMedia 的疑问
你提到为什么
uni.scanCode不使用chooseMedia来选择照片以避免权限问题,知识库中暂未找到关于此设计决策的具体说明。从现有资料来看,
uni.chooseMedia和uni.chooseImage在 App 端同样存在custom和system两种模式之分。如果uni.scanCode底层使用的是custom模式,就会触发权限申请;而使用system模式(系统选择器)则不会。建议在实际开发中,如果 Google Play 审核因权限问题拒绝,优先考虑使用
onlyFromCamera: true仅启用相机,或结合uni-chooseSystemMedia插件自定义扫码流程。4***@qq.com
https://ext.dcloud.net.cn/plugin?id=27546 可以看看这个uts原生插件,我刚做完google上架之前也是遇到这个问题,就写了一个,google上架我是一次就过了
要回复问题请先登录或注册
公告
更多>相关问题