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” 來請求使用舊的存儲模式。
但是在後續版本這個可能會失效,到時候新版本還是需要做另外的適配