android - 从Android Q中的特定文件夹获取文件列表
问题描述
我正在尝试访问 android Q 中的特定文件夹,但应用程序崩溃了。
我正在使用以下代码,该代码在 Android PIE 之前工作正常,但在 Android Q 中不起作用
val directory = File(path)
val files = directory.listFiles()
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
得到以下错误
NullPointerException: Attempt to get length of null array
解决方案
使用 Android Q 文件接口不能用于访问公共目录,除非您requestLegacyStorage
在应用程序清单中使用 (不适用,因为它不再适用于 Android R)。要访问您需要使用DocumentFile
该类的目录,例如:
DocumentFile f = DocumentFile.fromTreeUri(context, uri);
f.listFiles();
推荐阅读
- java - elasticsearch 仅按少数字段排序,并为其他字段抛出错误
- reactjs - Stripe:管理产品的数量
- c# - 在 C# 中喷溅
- java - getEngineByName("JavaScript") 在 Java 11 上返回 null
- javascript - 如何使用 styled-component设置样式
- java - 如何将数据从一个活动获取到另一个活动并使用它们?
- flutter - 由于行之间的列颤动导致的像素错误
- c# - ASP.Net 的生命周期事件在哪里声明?(不是事件处理程序)
- ios - 尝试使用 Webstorm 进行 React Native iOS 开发时出现 POD 错误
- r - 如何在涉及逐渐增加单独在线 csv 文件的 R 操作中编码?