AndroidQ FileNotFoundException: open failed: EACCES (Permission denied),权限都允许了还是报错

解决方法:

在清单文件AndroidManifest.xml中添加 : android:requestLegacyExternalStorage="true"

再说问题:

选择手机中的文件(照片)

同样的代码,在 compileSdkVersion = 27 是没有问题的;

但是在compileSdkVersion = 29 AndroidX ,AndroidManifest.xml中的权限、Android6.0动态权限都是允许的,报错说没有权限FileNotFoundException: open failed: EACCES (Permission denied);

折腾了很久,最后在清单文件 application节点下添加 android:requestLegacyExternalStorage="true" 解决问题;

原因:

AndroidQ分区储存权限更变,对于SDK >= 28的生效。添加android:requestLegacyExternalStorage="true"后还是使用原来的策略;

具体细节请看谷歌官方文档:https://developer.android.google.cn/about/versions/10/privacy/changes

小米AndroidQ适配:https://dev.mi.com/console/doc/detail?pId=1697 
华为AndroidQ适配:https://developer.huawei.com/consumer/cn/devservice/doc/50127
OPPO AndroidQ适配:https://open.oppomobile.com/wiki/doc#id=10432
VIVO AndroidQ适配:https://vcl.vivo.com.cn/#/home/index

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