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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章