android Q(10) 在讀寫文件時引入的權限問題

在安卓Q上操作文件讀寫時遇到的問題,進行記錄。


獲取到文件夾的對象之後,調用listFiles()方法嘗試獲取該目錄下面的文件時出現了問題,返回值永遠是null,在網上查找了一番之後基本都指向了權限問題,但是通過調試可以確認我已經獲取到了讀寫權限,但是仍然返回的是空。

經過一天的查找,發現,android Q對於文件讀寫引入了新特性,在這個版本中,READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE均受到了限制,無法再像之前的版本直接獲取到文件。如果希望恢復之前的權限邏輯,可以在manifest文件中設置:

android:requestLegacyExternalStorage="true"

即可解決。

另外,還可以通過StorageManager的getPrimaryStorageVolume().createOpenDocumentTreeIntent()方法來進行操作,這個方法沒有辦法通過File類來操作文件,但是可以使用類似的DocumentFile

發佈了128 篇原創文章 · 獲贊 14 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章