与分区存储有关(
https://developer.android.com/training/data-storage?hl=zh-cn#scoped-storage)
android 权限系统经过不断更新,意在根据文件用途来区分是否需要权限,而不是根据存储位置区分.
在 api29(或更高)为目标平台的应用中,默认启用了分区存储.
分区存储简单点说就是
1:根据文件使用用途来区分你的存储位置,如果不需要与其他应用共享的文件(或媒体),你应该存储在私有目录(内部或者外部都有包含私有目录)
2:如果对其他应用有价值的文件(如媒体),或者说你愿意共享的文件,你应该存储在外部共享目录
3:访问私有目录无需任何存储权限;访问共享目录中归属于本应用的文件无需任何存储权限(api29 新特性:系统会将每个媒体文件归因于一个应用),访问共享目录中不属于本应用的文件,需要 'READ_EXTERNAL_STORAGE'权限(并且需要使用 MediaStore API)
android:requestLegacyExternalStorage="true"是关闭分区存储