Получить список файлов из определенной папки в 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

person Amin Pinjari    schedule 21.08.2019    source источник


Ответы (1)


В Android Q файловый интерфейс нельзя использовать для доступа к общедоступным каталогам, если вы не используете requestLegacyStorage в манифесте приложения (без raccomanded, поскольку он больше не будет работать с Android R). Для доступа к каталогу вам необходимо использовать класс DocumentFile, например:

DocumentFile f = DocumentFile.fromTreeUri(context, uri);
f.listFiles();
person greywolf82    schedule 21.08.2019