Как читать или записывать файл, так как getExternalStorageDirectory устарела в API 29? - PullRequest
0 голосов
/ 29 июня 2019

Я новичок в разработке для Android, и у меня возникла проблема с чтением getExternalStorageDirectory в Java, я прочитал https://developer.android.com/reference/android/os/Environment, но не могу понять, может ли кто-нибудь помочь мне с примером кода в Java.

1 Ответ

1 голос
/ 29 июня 2019

Из документов вы можете увидеть:

getExternalStoragePublicDirectory(String type)

Этот метод устарел на уровне API 29. Для улучшения конфиденциальности пользователей прямой доступ к общим / внешним устройствам хранения не рекомендуется. когда приложение предназначено для Build.VERSION_CODES.Q, путь, возвращаемый из этого метод больше не доступен напрямую для приложений. Приложения могут продолжать доступ к содержимому, хранящемуся в общем / внешнем хранилище, путем миграции альтернативы, такие как Context # getExternalFilesDir (String), MediaStore или Intent # ACTION_OPEN_DOCUMENT.

Ничего не передавать в качестве параметра этой функции, чтобы получить каталог как объект File:

Context.getExternalFilesDir();

Здесь «Контекст» - это объект, который получается this.getContext();

this - текущий объект действия. Внимательно проверяйте прицел при его использовании.

Важно

Для доступа к Внутреннему хранилищу Manifest.permission.WRITE_EXTERNAL_STORAGE и / или Manifest.permission.READ_EXTERNAL_STORAGE требуются в файле AndroidManifest.xml .

Дополнительная информация:

  1. Обычно внутренний накопитель имеет путь / SDCard / на устройствах Android. Это не реальный путь, а символическая ссылка .

  2. Это сбивает с толку, но «внешняя SD-карта» в Android фактически означает внутреннее хранилище устройства, а не внешнее извлекаемое хранилище карты памяти вне устройства. Также обратите внимание, что настоящий внешний SDCard не может иметь полный доступ

  3. Activity * Класс 1051 * расширяет класс Context Вот почему мы можем получить из него контекст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...