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完美解决问题…简单粗暴。

不过具体的原因和新的规范用法还是未知,之后有时间的话还是要读一下文档,学习一下。

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