android10 打开相册 open failed: EACCES (Permission denied) 权限问题
android 10 打开相册、视频 遇到权限问题
首先AndroidManifest.xml中申请了
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
然后动态权限也申请了,检测也是有相关权限的
结果访问相册时候还是报如标题错误
后来发现在AndroidManifest.xml中添加
android:requestLegacyExternalStorage="true"
测试可以正常访问相册了
原因:
Android Q 默认开启沙箱模式 导致出现文件读写失败
从Android Q(即 Android 10)开始,应用访问外部存储的私有目录(即Context.getExternalFilesDir())不需要申请READ_EXTERNAL_STORAGE or WRITE_EXTERNAL_STORAGE权限。同时,正常情况下,就算应用有申请READ_EXTERNAL_STORAGE or WRITE_EXTERNAL_STORAGE权限,也只能访问外部存储的私有目录,若是访问了除了私有目录之外的其他外部储存,会抛出异常
现在简单粗暴的方法就是在 AndroidManifest.xml 中添加 android:requestLegacyExternalStorage=“true” 来请求使用旧的存储模式。
但是在后续版本这个可能会失效,到时候新版本还是需要做另外的适配