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

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