从Android Q中的特定文件夹获取文件列表

时间:2019-08-21 12:48:11

标签: android kotlin local-storage android-10.0

我正在尝试访问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

1 个答案:

答案 0 :(得分:1)

使用Android Q文件界面不能用于访问公共目录,除非您在应用清单中使用requestLegacyStorage(不建议使用,因为它不再适用于Android R)。要访问目录,您需要使用DocumentFile类,例如:

DocumentFile f = DocumentFile.fromTreeUri(context, uri);
f.listFiles();