繁体   English   中英

如何在 Android 上使用内置下载管理器

[英]How to use built-in download manager on Android

我想为 android 平台开发一个可以从我的服务器下载一些文件的应用程序。

我如何像在 Android 市场应用程序中一样使用 android 的下载管理器? 我的意思是,当用户下载某些东西时,通知栏中会显示下载状态。

对不起我的英语!

您的意思可能是内置到 Android 市场应用程序中。 所以我想没有办法轻松地重用它,而是你必须自己构建一个类似的。 为此,您可能需要查看以下 SO 帖子:

根据您使用的文件类型,我发现从远程服务器下载文件的最简单方法是触发类似的意图

Intent downloadIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pathToFile));

例如,如果“pathToFile”是 pdf 文档的 HTTP 地址,浏览器将自动开始下载,该下载显示在通知栏中,一旦完成,用户可以单击它并(如果安装了相应的应用程序) 文件将被打开。

如果您需要在应用程序中进一步处理下载的文件,那么最好自己处理下载,打开 HTTP 连接等......

您也可以使用系统的DownloadManager

DownloadManager mgr = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);

向此服务发布 DownloadManager.Request 会导致下载出现在通知区域中。

使用此类通过下载管理器下载任何文件

  public class DLManager {
 @SuppressLint("NewApi")
 public static void useDownloadManager(String url, String name, Context c) {
  DownloadManager dm = (DownloadManager) c
    .getSystemService(Context.DOWNLOAD_SERVICE);
  DownloadManager.Request dlrequest = new DownloadManager.Request(
    Uri.parse(url));
  dlrequest
    .setAllowedNetworkTypes(
      DownloadManager.Request.NETWORK_WIFI
        | DownloadManager.Request.NETWORK_MOBILE)
    .setTitle("Title")
    .setDescription("Downloading in Progress..")
    .setDestinationInExternalPublicDir("Directory_name", name + ".jpg")
    .allowScanningByMediaScanner();

  dm.enqueue(dlrequest);

 }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM