android10 打开相册 open failed: EACCES (Permission denied) 权限问题

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” 来请求使用旧的存储模式。

但是在后续版本这个可能会失效,到时候新版本还是需要做另外的适配

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章