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

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

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

спасибо ;)

2 ответов


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

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

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


Котлин эквивалент вышеуказанного ответа:

val downloadManager =   this.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
downloadManager.addCompletedDownload(file.getName(), file.getName(), true, "application/json", file.getAbsolutePath(),file.length(),true)