我想为Android平台开发一个可以从我的服务器下载一些文件的应用程序。
我如何使用Android的下载管理器,就像它在Android市场应用中使用的一样?我的意思是,当用户下载内容时,通知栏中会显示下载状态。
抱歉我的英文!
答案 0 :(得分:6)
你所说的那个可能是构建到Android市场的应用程序。所以我想没有办法轻易地重复使用它,而是你必须自己构建一个类似的。 您可能希望为此目的查看以下SO帖子:
根据您使用的文件类型,我发现从远程服务器下载文件的最简单方法是触发像
这样的意图Intent downloadIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pathToFile));
例如,如果“pathToFile”是pdf文档的HTTP地址,则浏览器将自动开始下载,该下载显示在通知栏中,一旦完成,用户可以单击它并(如果相应的话) app已安装)文件将被打开。
如果您需要从应用程序中进一步处理下载的文件,那么最好自己处理下载,打开HTTP连接等...
答案 1 :(得分:4)
您也可以使用系统的DownloadManager。
DownloadManager mgr = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
向此服务发布DownloadManager.Request会导致下载显示在通知区域中。
答案 2 :(得分:2)
使用此类使用下载管理器下载任何文件
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);
}
}