Android项目targetSdk升级至30时ALL FILE ACCESS权限使用合规疑问
Android Target SDK 30 外置存储权限适配方案
是否可以申请ALL FILE ACCESS权限
你的场景属于谷歌官方允许申请该权限的合理场景,只要合规申报不会导致应用被下架。
符合谷歌合规要求的核心依据:
- 应用为纯离线属性,无云端存储能力,需要将核心配置、用户数据存储在公共路径避免应用卸载后数据丢失
- 业务需要支持运营/客服人员手动向公共存储路径推送配置文件、资源内容
注意:你需要在触发权限申请弹窗之前,向用户清晰说明
ALL FILE ACCESS权限的具体用途,提交应用到谷歌商店审核时,也要在权限声明模块完整填写上述使用场景,不得隐瞒权限实际用途。
无需申请ALL FILE ACCESS的替代方案
如果不想申请全文件权限,也可以通过以下方案满足需求:
- 使用存储访问框架(SAF)引导用户主动授权你指定的外置SD卡目录的长期访问权限,获得权限后可正常读写该目录下的所有文件,且目录内的文件不会随应用卸载被删除。核心调用代码示例:
// 唤起用户选择指定目录的系统弹窗 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); startActivityForResult(intent, REQUEST_CODE_STORAGE_PERM);
拿到用户授权返回的Uri后,需要调用
takePersistableUriPermission()方法申请长期访问权限,避免设备重启后权限失效。
- 提前告知用户将客服推送的配置文件存放到公共媒体目录(Download、Documents等),你通过媒体存储API即可读取对应文件,无需申请全文件权限,文件也不会随应用卸载被删除。
审核注意事项
- 如果选择申请
ALL FILE ACCESS权限,不要超出声明范围读取其他应用的隐私文件,仅读写你业务需要的专属目录内容即可 - 可以把应用离线属性、客服手动推送配置的业务逻辑整理成说明材料,审核被问询时提交即可快速通过
内容的提问来源于stack exchange,提问作者vijaya zararia
相关产品推荐
相关产品推荐

