Manually add local file to the Downloads app

邮差的信 提交于 2020-01-22 20:04:06

问题


My app needs to download files, I was looking into DownloadManager, however it has some limitations that don't suit my case (authentication, naming scheme, verification), so I made my custom download engine.

Is it possible to manually add a file downloaded with my engine (thus by using a local URL) to the list in the Downloads system app? My understanding is that list is populated by a system content provider. Is it possible to add records to it, without the DownloadManager trying to download the file?

Thanks ;)


回答1:


To manually add a file you need to use the DownloadManager class. I use the following to show a file in the Download app that I created locally.

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

This will make the file appear in the Downloads app on 6.0, even if the file was created locally.




回答2:


Kotlin Equivalent of the above answer:

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


来源:https://stackoverflow.com/questions/16755071/manually-add-local-file-to-the-downloads-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!