Как переместить файл из внутренней памяти моего приложения в каталог загрузок телефона в Android Q (10)?

Похоже, что getExternalStoragePublicDirectory() устарел, поэтому мне нужна альтернатива.

Скажем, у меня есть файл foo.png во внутренней памяти моего приложения. Я могу легко получить доступ к этому файлу с помощью

val foo = File(context.filesDir, "foo.png")

Моя проблема в том, что я хочу переместить этот файл в каталог загрузок пользователя, чтобы они могли видеть его на своем телефоне.

В этом ответе используется DownloadManager. К сожалению, это изображение я создаю сам, а не скачиваю откуда-то.


person cris    schedule 02.09.2020    source источник
comment
Для устройства Android 20: добавьте android: requestLegacyExternalStorage = true в тег приложения в файле манифеста, и вы можете скопировать файл в это внешнее хранилище старым способом. После этого удалите оригинал.   -  person blackapps    schedule 02.09.2020
comment
Спасибо, но я в курсе. Похоже, это временное решение. Я ищу долгосрочное решение.   -  person cris    schedule 02.09.2020
comment
Тогда почему ты этого не сказал?   -  person blackapps    schedule 02.09.2020
comment
Фактически на это ответил пользователь Франк в здесь.   -  person cris    schedule 03.09.2020


Ответы (1)


У вас есть два варианта.

Используйте Storage Acces Framework, чтобы позволить пользователю выбрать каталог для загрузки.

Используйте MediaStore, чтобы вставить файл в каталог загрузки.

person blackapps    schedule 02.09.2020