[prg] Как поделиться файлом из папки downloads android 11

Всех приветствую. Понимаю,что очень маловероятно,что мне здесь кто-то
ответит,но всё же,как можно поделиться загруженным файлом из папки
downloads через DownloadManager на android 11. Когда я пытался это
сделать,у меня вылазит securityException,связанное с permission. Еслиу
intent не устанавливать флаг,который называется примерно
prefix_grand_uri_permission,всё норм,но с моим uri не могут работать
приложения. Вы можете посмотреть мой код на
https://github.com/alexandrKozlovskiy/share_issue/. Просьба перед
тем,как что-то спрашивать,посмотреть мой код,т.к очень многие в зрячих
чатах задавали вопросы,не смотря мой код. Я даже зарегистрировал issue в
google,описывающее эту проблему и google вроде признал этот баг
https://issuetracker.google.com/issues/190787890. Заранее всем огромное
спасибо за помощь.

Ответить   Wed, 16 Jun 2021 15:52:48 +0300 (#3672173)

 

Ответы:

Приветствую всех!

Попробуйте использовать android.support.v4.content.FileProvider:
https://developer.android.com/reference/androidx/core/content/FileProvider

Успехов. Анатолий.

Ответить   Wed, 16 Jun 2021 22:51:38 +0400 (#3672202)

 

Здравствуйте Анатолий. Идея может и хорошая,т.к мне советовали уже это в
зрячем айтишном чате,только я не смог найти,как применить его к папке
downloads. К тому же uri я получаю через downloadManager,используя id
загрузки. А как это сделать через FileProvider,зная id загрузки,не
представляю.

Ответить   Thu, 17 Jun 2021 00:15:45 +0300 (#3672212)

 

Приветствую всех!

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

Во-первых, если вы получили URI, что вам мешает получить File из этого
URI (см. документацию File)?
Во-вторых, вы сами задаёте пут, то есть каталог и имя файла в строке:
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,uri.lastPathSegment)
Что вам мешает использовать этот путь, то есть создать объект File и
передать его FileProvider?

Успехов. Анатолий.

Ответить   Thu, 17 Jun 2021 04:49:10 +0400 (#3672218)