Android 13(API 33)中WRITE_EXTERNAL_STORAGE权限弹窗不显示问题咨询
问题解答
1. Android 13上WRITE_EXTERNAL_STORAGE权限弹窗不出现的原因
针对目标版本为Android 13(API 33)的应用,WRITE_EXTERNAL_STORAGE权限已被完全废弃,系统会自动忽略该权限的运行时请求,因此不会弹出授权弹窗。同时,这个权限在清单文件中声明也不会产生任何效果。
2. 应用私有存储操作无需存储权限
你的应用是在应用私有存储中创建密钥库文件,这种情况根本不需要申请任何存储权限。从Android 10(API 29)开始,应用对自身私有存储目录(如getFilesDir()、getCacheDir()返回的路径)的读写操作默认被允许,无需申请WRITE_EXTERNAL_STORAGE或其他存储权限,这个规则在Android 13上依然适用。
3. Android 13存储权限变更官方说明(翻译)
针对Android 13的应用,系统用更细分的媒体权限替代了
READ_EXTERNAL_STORAGE权限:
- 图片和照片:
READ_MEDIA_IMAGES- 视频:
READ_MEDIA_VIDEO- 音频文件:
READ_MEDIA_AUDIO如果你的应用只需要访问特定类型的媒体文件,请求对应的细分权限即可,无需再申请宽泛的
READ_EXTERNAL_STORAGE。对于非媒体文件的公共存储访问,Android 13不再支持通过传统存储权限实现,你需要使用**存储访问框架(SAF)**让用户手动选择文件或目录。
4. 后续操作建议
- 移除清单文件中
WRITE_EXTERNAL_STORAGE权限的声明,因为它对目标API33的应用已无意义; - 确认你创建密钥库文件的路径是应用私有存储目录,确保无需权限即可正常操作;
- 如果后续需要访问公共存储中的非媒体文件,集成存储访问框架(SAF)来实现用户授权的文件操作。
内容的提问来源于stack exchange,提问作者Rohit
相关产品推荐
相关产品推荐

