Невозможно получить доступ к файловой системе после изменения Android 9 на 10 - PullRequest
0 голосов
/ 04 марта 2020

У меня есть приложение, которое использует файлы на устройстве хранения. Это работает абсолютно нормально на Android 9. Одна из вещей, которую он делает, это просматривает каталог, чтобы получить список файлов.

Я только что обновил до Android 10. Внезапно, в каталоге нет (очевидно) файлов. Однако на самом деле все те же файлы существуют в соответствии с Total Commander.

Код (папка является строкой, установленной в /storage/emulated/0/uk.co.nightshade-arts/maps):

...
String []
        rawFiles;

try {
    File    f = new File(folder);

    rawFiles = f.list();
}

catch (Exception e) {
        return null;
}

...

rawFiles заканчивается как null, что должно возвращать list (), если путь не папка, а папка.

Однако, (1) файлы не изменились, (2) они определенно существуют в соответствии с Total Commander и (3) другое приложение с теми же разрешениями хранилища, target API et c, использующее тот же код для отображения (другого) каталога, по-прежнему работает абсолютно нормально.

Кто-нибудь может подсказать, что могло измениться между Android 9 и 10?

Кроме того, я также заметил, что Android Studio постоянно отключается от цели (Google Pixel 2), поэтому отладка не работает, теперь телефон работает 10. Этого также не случалось.

1 Ответ

1 голос
/ 04 марта 2020

У вас нет доступа к этому каталогу с целью Android Q действительно.

Это то, что изменилось.

Нет доступа к getExternalStorageDirectory () больше.

Добавить android:requestLegacyExternalStorage="true" проявить, если вы хотите продолжить по-старому до R.

...