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

Я хочу, чтобы мое приложение записывало текстовый файл в папку «Документы» (или любую другую часть памяти, которая сохраняется после удаления приложения).

До Android 9 (SDK 28) Доступ к папке с документами можно получить следующим образом:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);

, что в настоящее время устарело из-за новой политики памяти с областью действия. Официальная документация гласит:

Приложения могут продолжать получать доступ к содержимому, хранящемуся в общем / внешнем хранилище, путем перехода на альтернативные варианты, такие как Context # getExternalFilesDir (String), MediaStore или Intent # ACTION_OPEN_DOCUMENT.

Первый вариант, Context#getExternalFilesDir(String) - это не то, что я хочу, потому что

Это похоже на getFilesDir () в том, что эти файлы будут удалены при удалении приложения

Третий вариант, Intent#ACTION_OPEN_DOCUMENT недостаточен, потому что я хочу записать файл перед тем, как получить к нему доступ.

Похоже, MediaStore - единственный способ. Я видел несколько неполных примеров кода с MediaStore, но я не смог найти исчерпывающий ответ.

Пожалуйста, не могли бы вы предоставить полный Java фрагмент, который показывает, как писать / читать текстовые файлы из удаления, сохраняемого память в Android 10? Несмотря на строгие политики конфиденциальности Android 10, я не понимаю, почему это не должно быть возможным, если пользователь предоставляет разрешения. Большое спасибо.

...