Android 10 SDK 29 使用listFiles返回null空值的原因

Android 10 SDK 29 使用listFiles返回null空值的原因

Android下使用listFiles()獲得的返回值爲null。 很早很早以前遇到過這個問題,大概還是安卓5.0左右,只需要添加文件存取權限就可以了。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

之後到了安卓6.0又出現了這個問題,原因是谷歌要求危險權限必須動態獲取,所以還要使用requestPermissions在運行時獲取權限。

之後一直平安無事。然而最近隨便瞎寫個app玩兒,一直報空指針異常,發現listFiles()又返回null…而且無論如何也解決不了…最後注意到:
api棄用信息

之後在StackOverFlow上找到這樣的帖子:
https://stackoverflow.com/questions/57027531/environment-getexternalstoragedirectory-deprecation-alternatives
棄用原因
意思大概就是谷歌又發話了:從API29開始不能再這麼用了… 這個好處就是以後可能安卓的存儲卡上不會再有亂七八糟的一大堆有用沒用的文件夾…

所以猜想getList返回null就是這裏出了問題。那麼這個就好辦了,(畢竟我這裏app就是寫着玩的)… 直接把構建sdk都改回28完美解決問題…簡單粗暴。

不過具體的原因和新的規範用法還是未知,之後有時間的話還是要讀一下文檔,學習一下。

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