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

Ami*_*ari 5 android local-storage kotlin 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" />
Run Code Online (Sandbox Code Playgroud)

出现波纹管错误

NullPointerException: Attempt to get length of null array
Run Code Online (Sandbox Code Playgroud)

gre*_*f82 2

对于 Android Q 文件接口不能用于访问公共目录,除非您requestLegacyStorage在应用程序清单中使用(不支持,因为它不再适用于 Android R)。要访问该目录,您需要使用该类DocumentFile,例如:

DocumentFile f = DocumentFile.fromTreeUri(context, uri);
f.listFiles();
Run Code Online (Sandbox Code Playgroud)