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” 來請求使用舊的存儲模式。

但是在後續版本這個可能會失效,到時候新版本還是需要做另外的適配

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