12

我的应用程序需要下载文件,我正在研究 DownloadManager,但是它有一些不适合我的情况的限制(身份验证、命名方案、验证),所以我制作了我的自定义下载引擎。

是否可以手动将使用我的引擎下载的文件(因此使用本地 URL)添加到下载系统应用程序的列表中?我的理解是该列表由系统内容提供者填充。是否可以在没有 DownloadManager 尝试下载文件的情况下向其中添加记录?

谢谢 ;)

4

2 回答 2

14

要手动添加文件,您需要使用 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 的“下载”应用程序中,即使该文件是在本地创建的。

于 2016-11-22T17:33:20.777 回答
2

Kotlin 等效于上述答案:

val downloadManager =   this.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
downloadManager.addCompletedDownload(file.getName(), file.getName(), true, "application/json", file.getAbsolutePath(),file.length(),true)
于 2018-09-26T06:08:00.670 回答