targetSdk为30时requestLegacyExternalStorage在Android Q(SDK29)是否仍生效?
问题解答
1. 2021年11月规则下配置有效性
你提到的requestLegacyExternalStorage="true"配置,在Android Q(SDK 29)系统上运行时完全有效,不受2021年11月Google Play存储权限规则影响。
2. targetSdk=30时Android 29设备上的实际运行行为
当你的应用targetSdk设为30,同时在AndroidManifest中配置requestLegacyExternalStorage="true"时,在Android 29设备上的表现如下:
- 系统会完全生效该配置,启用传统外部存储访问模式:只要你申请了
READ_EXTERNAL_STORAGE权限,就可以正常获取Music等公共共享目录下的完整文件列表,和targetSdk=29时启用该标记的表现完全一致。 - 该配置仅会在Android 11(SDK 30)及更高版本的系统上被系统自动忽略,此时分区存储会强制生效,你已经接入的Storage Access Framework和MediaStore API可以正常满足存储访问需求,不需要额外申请MANAGE_EXTERNAL_STORAGE权限。
补充说明
现有配置下你不需要调整存储相关逻辑,只需要分别对Android 29及以下、Android 11及以上版本做好功能验证即可。
内容的提问来源于stack exchange,提问作者MarcoB
相关产品推荐
相关产品推荐

