Я хочу, чтобы мое приложение записывало текстовый файл в папку «Документы» (или любую другую часть памяти, которая сохраняется после удаления приложения).
До 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, я не понимаю, почему это не должно быть возможным, если пользователь предоставляет разрешения. Большое спасибо.