uni.chooseImage({
count: 6,
sizeType: ['original', 'compressed'],
sourceType: ['album'],
success: function (res) {
console.log(JSON.stringify(res.tempFilePaths));
}
});
- 发布:2026-06-08 14:14
- 更新:2026-06-08 14:15
- 阅读:38
产品分类: uni小程序SDK
手机系统: Android
手机系统版本号: Android 13
手机厂商: Android 设备
手机机型: 三星、小米、华为、vivo
页面类型: vue
SDK版本号: 4.85
示例代码:
操作步骤:
调用 uni.chooseImage 方法选择添加图片
调用 uni.chooseImage 方法选择添加图片
预期结果:
调用系统方法 Android Photo Picker
调用系统方法 Android Photo Picker
实际结果:
无响应,需要授权 READ_MEDIA_IMAGES/READ_MEDIA_VIDEO
无响应,需要授权 READ_MEDIA_IMAGES/READ_MEDIA_VIDEO
bug描述:
Google 审核失败,原因:不能使用 READ_MEDIA_IMAGES/READ_MEDIA_VIDEO 权限。
移除权限后小程序使用 uni.chooseImage 方法无法访问相册选取图片。
Ask小助手 - Ask社区AI助手
好的,我将以 DCloud 官方人员的视角,对这个 bug 反馈进行评审。
评审人: DCloud 官方人员
评审对象: bug 反馈 #Google Play 审核退回:Unisdk - 禁止使用 READ_MEDIA_IMAGES/READ_MEDIA_VIDEO 权限
总体评价:
这是一个高质量、非常及时的 bug 反馈。反馈者清晰地描述了 Google Play 最新政策与 uni-app SDK 在 Android 13 设备上行为之间的矛盾,并提供了完整的复现路径和代码示例。问题定位准确,对官方解决此适配问题有很高的价值。
具体评审分析:
1. 反馈内容完整性分析
- BUG 描述: 描述非常清晰、准确。核心矛盾点明确:Google Play 禁止使用
READ_MEDIA_IMAGES/READ_MEDIA_VIDEO权限,但移除权限后,uni.chooseImage在 Android 13 上无法正常工作。这能让官方人员立刻理解问题的本质是 SDK 实现与 Google 政策的冲突。 - 代码示例: 代码示例完整且关键。它明确展示了用户调用的是
uni.chooseImageAPI,并设置了sourceType: ['album'],这正是触发问题的核心场景。代码可以直接运行,无需调整。 - 复现步骤: 复现步骤虽然简短,但结合描述和代码示例,已经足够清晰。官方人员只需在 targetSdkVersion 设置为 33+ 且已移除相关权限的 Android 13 设备上,调用示例代码即可稳定复现。
- 预期结果: 预期结果非常合理且专业。反馈者期望调用“Android Photo Picker”,这正是 Google 官方推荐的、无需
READ_MEDIA_IMAGES/READ_MEDIA_VIDEO权限的系统级照片选择器。这为官方解决问题指明了正确的技术方向。 - 实际结果: 实际结果“无响应,需要授权 READ_MEDIA_IMAGES/READ_MEDIA_VIDEO”是当前 SDK 的表现,属于一个真实存在的适配问题,并非误报。
- 分类信息: 分类信息完整,包含了手机 OS 平台(Android)、系统版本(Android 13)以及多家主流厂商和机型,这表明问题具有普遍性,不是个别设备问题。
结论: 反馈内容非常完整,所有关键信息均已提供,官方人员可以无障碍地理解并复现该问题。
2. Bug 是否成立分析
Bug 成立。
根据知识库中的信息,此问题完全符合 Google Play 的政策要求和 uni-app 的已知适配情况:
- 政策依据: 知识库中
uni.chooseVideo的兼容性说明和 uni-app-x 的choose-video文档中,都明确提到了 google play 照片和视频权限 政策的影响,并指出需要移除READ_MEDIA_IMAGES和READ_MEDIA_VIDEO权限。 - 当前方案与局限: 对于 uni-app (非 x 版本),目前官方的 API
uni.chooseImage在 Android 上访问相册时,底层实现可能仍依赖这些媒体权限,导致移除权限后功能失效。这与 Google 要求使用系统照片选择器(Android Photo Picker)的政策相悖。 - 替代方案: 知识库和社区中已经提供了明确的解决方案,即使用官方插件
uni-chooseSystemMedia。该插件在 插件市场 的描述中明确指出,其目的就是“解决google play新政策禁止添加媒体权限的问题”,通过调用系统 API 选择图片,无需申请媒体权限。此外,社区 ISSUE 系统 DCloud问答_214473 中也讨论了此问题,并提到了使用此插件作为替代方案。
结论: 该 bug 反馈真实有效,反映了 uni.chooseImage API 在 Android 13+ 设备上为满足 Google Play 政策而需要进行的必要适配。目前,官方已通过插件形式提供了解决方案。
3. 是否为基本概念问题分析
不是基本概念问题。 这是一个典型的平台政策变更导致的 API 兼容性问题,开发者无法通过通用的前端知识解决,必须依赖 DCloud 官方对底层原生 API 的适配(如调用 Android Photo Picker)。
给开发者的最终建议:
您好,您反馈的问题我们已经知悉,这是一个为了适配 Google Play 最新“照片和视频权限”政策而产生的已知问题。
目前,对于 uni-app 项目,我们推荐使用官方的 uni-chooseSystemMedia 插件来替代 uni.chooseImage 进行相册选择。该插件专门为解决此问题而开发,它会调用 Android 系统原生的照片选择器,无需申请 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 权限,可以顺利通过 Google Play 审核。
您可以在 插件市场 获取该插件,并按照文档说明进行集成。同时,请务必在 manifest.json 中配置移除相关权限,具体配置方式可以参考 uni-chooseSystemMedia 插件文档。
感谢您的详细反馈,这对我们持续改进产品非常有帮助。