解決辦法:
添加android:requestLegacyExternalStorage=”true”到清單中。存儲模型發生改變,這樣是選擇舊式存儲模型,並且現有的外部存儲代碼將起作用。
然后動態添加ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION 權限,
或者手動 :用戶可於 設置 > 隱私 > 權限管理器 > 文件和媒體頁面中查看所有允許存儲所有文件(READ_EXTERNAL_STORAGE權限)的應用
然后賦予權限
原始路徑訪問文件
Android 11 開始,具有 READ_EXTERNAL_STORAGE權限的應用可用使用直接文件路徑和原生庫讀取設備文件。
文件和目錄訪問限制
目錄
Android 11 開始無法使用ACTION_OPEN_DOCUMENT_TREEintent 操作請求以下目錄
Downloads根目錄
設備制造商認為可靠的各個 SD 卡卷的根目錄,無論該卡是模擬卡還是可移除的卡。
文件
Android 11 開始無法使用ACTION_OPEN_DOCUMENT_TREE或 ACTION_OPEN_DOCUMENTintent 來請求用戶從以下目錄選取文件
Android/data/目錄及其子目錄
Android/obb/目錄及其子目錄
對於目標SDK 為Android 11
如果應用以 Android 11 為目標平台,則 WRITE_EXTERNAL_STORAGE權限和 WRITE_MEDIA_STORAGE特許權限將不再提供任何其他訪問權限。
所有文件訪問權限 MANAGE_EXTERNAL_STORAGE
對於需要訪問大量文件的應用,可通過以下操作獲取所有文件訪問權限
聲明MANAGE_eXTERNAL_STORAGE權限
使用ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION intent操作會引導客戶至一個系統設置頁。該頁面允許用戶為該應用授予所有我的管理權限