You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

目标SDK设为30时Google Play被拒要求使用Media Store Api解决方案问询

可行解决方案如下:

  1. 立即移除MANAGE_EXTERNAL_STORAGE权限
    该权限仅允许文件管理器、备份类等需要访问全量存储的应用申请,普通应用的相机、图库功能完全不需要该权限,申请后会直接触发Google Play审核驳回。

  2. 更新存储权限配置以兼容多系统版本
    针对Android 13(API 33)开始的细分媒体权限,调整AndroidManifest.xml中的权限声明:

<!-- 安卓10及以下需要写外部存储权限 -->
<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="29" />
<!-- 安卓11-12需要读外部存储权限 -->
<uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE"
    android:maxSdkVersion="32" />
<!-- 安卓13及以上细分媒体权限,按需申请:仅需要图片就只申请READ_MEDIA_IMAGES -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" android:required="false" />
  1. 全量替换相机、图库逻辑为MediaStore API实现
  • 拍照存图场景:不要直接创建公共存储路径下的文件,通过ContentResolver.insert()方法向MediaStore的MediaStore.Images.Media.EXTERNAL_CONTENT_URI插入空记录得到图片Uri,将该Uri作为相机输出地址,应用自己创建的媒体文件不需要额外申请权限即可写入。
  • 图库选图场景:不要使用ACTION_GET_CONTENT获取文件路径,也不要直接遍历公共存储目录找图片,通过MediaStore查询公共媒体库得到图片Uri,使用ContentResolver.openInputStream()读取Uri对应内容即可,不需要获取文件绝对路径。
  • 彻底删除所有直接访问/sdcard、/storage/emulated/0等公共存储原生路径的代码,API 30+下即使有权限也无法直接访问这类路径,会被Google Play扫描检出。
  1. 提交审核时准确填写权限声明
    如果应用申请了媒体相关权限,在Google Play Console的权限声明表单中,明确说明权限仅用于应用内拍照、选取本地图片的功能,上传功能演示截图证明权限用途和描述一致。

内容的提问来源于stack exchange,提问作者Sharjeel Ahmad Siddiqui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:15:03