首先说一下具体是什么问题:
一开始我是用的Glide加载本地图片,路径没问题,读取权限页已经赋予,可就是无法加载出来。我还以为是Glide的什么bug,上网搜索了好久。
后面我又写了下面这张图的代码,想着转成bitmap来显示,然后就报错:open failed: EACCES (Permission denied)
这时才终于确定是权限问题,可我明明已经给了权限,后面了解到Android 10文件存储机制修改成了沙盒模式,APP只能访问自己目录下的文件和公共媒体文件。
Android10以下,还是使用旧的文件存储方式。
Android 10即使获取读取权限,访问外部存储也受到了限制。
如果你也遇到了这个问题,解决办法有两个。
第一种解决办法:
在 manifest的applicaiton标签里加上下面这一句
android:requestLegacyExternalStorage="true"
第二种解决办法:
检查你的 targetSdkVersion 是不是29,如果是的话,改成28.