36

我想知道下载 URL 的目的是什么?在浏览器中,它将下载带有小通知图标的内容。我想知道我是否可以使用那个意图(以及它是什么)。

4

4 回答 4

71

应用程序可以像浏览器和 gmail 一样使用下载管理器下载文件。这可以从姜饼开始。

您的应用需要INTERNET权限才能启动下载。要将文件保存在默认下载目录中,它还需要WRITE_EXTERNAL_STORAGE权限。

下载 URI 的方法如下:

DownloadManager.Request r = new DownloadManager.Request(uri);

// This put the download in the same Download dir the browser uses
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "fileName");

// When downloading music and videos they will be listed in the player
// (Seems to be available since Honeycomb only)
r.allowScanningByMediaScanner();

// Notify user when download is completed
// (Seems to be available since Honeycomb only)
r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

// Start download
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(r);

还有许多其他选项可用于自定义通知、查询下载状态和设置下载位置。

这篇博文展示了如何通过隐藏的 API 在早期版本的 Android 上使用下载管理器。

于 2012-01-27T12:25:15.660 回答
21

虽然我不相信浏览器中有下载 Intent,但您可能可以使用普通ACTION_VIEWIntent 并让浏览器根据内容类型决定是下载还是查看 url。

所以从你的代码触发器

new Intent(Intent.ACTION_VIEW, Uri.parse(url))

并希望这会触发浏览器中的下载。

于 2010-05-30T09:09:34.023 回答
1

你想做什么?如果您的应用想要下载文件,您可以使用 UrlConnection 代码。如果你想下载一个包,那么ACTION_PACKAGE_INSTALL应该做你想做的事。

于 2009-02-08T06:18:37.970 回答
-1

在这里查看所有 Android Intents。

于 2009-02-08T05:56:30.167 回答