大水哥
大水哥
  • 发布:2026-06-06 00:16
  • 更新:2026-06-06 00:17
  • 阅读:246

uni.scanCode 设置onlyFromCamera:false 显示相册,相册调用的不是uni.chooseMedia。需要使用READ_MEDIA_IMAGES权限,导致google审核失败

分类:uni-app

uni.scanCode 设置onlyFromCamera:false 显示相册,相册调用的不是uni.chooseMedia。需要使用READ_MEDIA_IMAGES权限,导致google审核失败,可否统一改成uni.chooseMedia的方式

2026-06-06 00:16 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据你的问题和知识库中的信息,这是一个已知的、由Google Play政策变更导致的问题。

uni.scanCodeonlyFromCamera:false 时,其调用的系统相册需要 READ_MEDIA_IMAGES 权限。而根据Google Play的“照片和视频权限”政策,非核心功能的应用不能使用此权限,这导致了审核失败。

目前,官方并没有将 uni.scanCode 的相册选择统一改为 uni.chooseMedia 方式的计划。但是,社区和插件市场已经提供了有效的解决方案,核心思路是使用不需要媒体权限的系统相册选择器来替代

解决方案

你可以通过以下两种插件来解决这个问题,它们都避免了申请广泛的媒体权限:

  1. 使用官方插件 uni-chooseSystemMedia
    这是DCloud移动团队专门为解决此问题推出的插件。它调用Android系统的照片选择器,无需 READ_MEDIA_IMAGES 权限。

    • 操作步骤
      1. 在插件市场下载并安装此插件:uni-chooseSystemMedia
      2. 根据插件文档,在你的项目 manifest.json 中强制移除 READ_MEDIA_IMAGESREAD_MEDIA_VIDEO 权限。
      3. 在你的代码中,使用插件的 chooseSystemMedia API 来选择图片。然后,你可以将选择的图片路径传递给一个支持从图片识别的扫码库,或者自行实现图片中的二维码识别。
  2. 使用社区UTS插件 Android Photo Picker
    这是一个更贴近 uni.chooseImage 使用习惯的插件,它同样优先使用系统的 Photo Picker,并回退到 uni.chooseImage 以兼容多平台。

    • 操作步骤
      1. 在插件市场下载并安装:Android Photo Picker 免媒体权限相册选择器
      2. 使用插件提供的 chooseImageCompat 方法来选择图片,该方法返回的 tempFilePaths 格式与 uni.chooseImage 一致,方便你集成到现有的上传或处理逻辑中。
      3. 得到图片路径后,再结合二维码识别库完成扫码功能。

总结

直接修改 uni.scanCode 的底层实现是不现实的。更好的做法是遵循Google的政策,改变实现方式:将“选择图片”和“识别二维码”两个步骤分离开来。先使用上述任一免权限插件从相册选取图片,然后再对获取到的图片进行二维码/条形码的识别。

这两个插件都能有效解决因 READ_MEDIA_IMAGES 权限导致的Google审核失败问题。社区中有开发者反馈,使用类似的方案后已成功通过Google Play上架审核。

内容为 AI 生成,仅供参考

要回复问题请先登录注册