Android 版本 10及以上 存储权限无效
现象
在获取了存储权限:WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE 之后,读写文件依然提示权限拒绝(Permission denied)。
原因:
Android 10之前
内存存储 :(data/xxxx/)通过getFilesDir()得到存储路径
外部存储:(sdcard(mnt)/xxxx),通过getExternalStorageDirectory()得到路径Android 10(29)之后
特定目录:无需权限申请,卸载自动删除 getExternalFilesDir()得到路径
媒体文件目录 (照片,视频等):需要READ_EXTERNAL_STORAGE,使用MeidaStore访问。
其他目录:使用SAF访问。在Android 10上即使拥有了读写权限,也无法正常的读取文件。
解决方式:
方式一:降低 targetSdkVersion 至 29 以下
方式二:
👉清单文件(AndroidManifest.xml)
👉 Application 标签
👉添加属性:android:requestLegacyExternalStorage="true"