Вручную добавьте локальный файл в приложение Downloads

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

Можно ли вручную добавить файл, загруженный с помощью моего движка (например, с помощью локального URL), в список в системном приложении Downloads? Насколько я понимаю, этот список заполняется поставщиком системного контента. Можно ли добавить в него записи без DownloadManager, пытающегося загрузить файл?

Спасибо;)

2 ответа

Решение

Чтобы вручную добавить файл, вам нужно использовать класс DownloadManager. Я использую следующее, чтобы показать файл в приложении Download, которое я создал локально.

DownloadManager downloadManager = (DownloadManager)mainActivity.getSystemService(mainActivity.DOWNLOAD_SERVICE);
downloadManager.addCompletedDownload(file.getName(), file.getName(), true, "application/json", file.getAbsolutePath(),file.length(),true);

Это заставит файл появиться в приложении Downloads на 6.0, даже если файл был создан локально.

Kotlin Эквивалент приведенного выше ответа:

val downloadManager =   this.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
downloadManager.addCompletedDownload(file.getName(), file.getName(), true, "application/json", file.getAbsolutePath(),file.length(),true)
Другие вопросы по тегам