Target SDK 33下原有继承的EXTERNAL_STORAGE权限是否仍有效?
关于Target API33下传统外部存储权限继承的问题解答
核心结论
从低版本(API29及以上)升级到Target API33的应用,之前通过legacy机制继承的EXTERNAL_STORAGE相关权限依然有效;仅全新安装的API33版本应用,才会触发READ_EXTERNAL_STORAGE失效、需使用拆分后权限的规则
具体说明
- 你的应用从API29配置
requestLegacyExternalStorage="true"安装,再升级到API30时启用preserveLegacyExternalStorage="true",已经让系统为这个应用实例标记了「保留传统外部存储访问权限」的状态,这个状态绑定应用安装记录,不会因为Target API升级到33而被清除。 - API33中READ_EXTERNAL_STORAGE权限被拆分为
READ_MEDIA_IMAGES、READ_MEDIA_VIDEO、READ_MEDIA_AUDIO三个独立权限的规则,仅对全新安装的API33版本应用生效。这类新安装的应用无法再通过READ_EXTERNAL_STORAGE获取全媒体访问权限,必须单独申请对应媒体类型的权限。 - Android官方文档未明确提及这个继承规则,是因为它属于legacy兼容机制的延续——本质上和API30时
preserveLegacyExternalStorage的作用逻辑一致:只要不是全新安装,就会保留应用历史的权限访问行为,避免升级后突然失效影响用户使用。
内容的提问来源于stack exchange,提问作者four_card
相关产品推荐
相关产品推荐

