首页 > 代码库 > 使用系统自带下载功能

使用系统自带下载功能

/**

* 使用系统自带下载功能

* @param context

* @param path 下载的URL

*/

public static void systemDownload(Context context, String path) {

DownloadManager downloadManager = (DownloadManager) context

.getSystemService(context.DOWNLOAD_SERVICE);

if (path == null) {

return;

}

Uri uri = Uri.parse(path);

Request request = new Request(uri);


// 设置允许使用的网络类型,这里是移动网络和wifi都可以

request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE

| DownloadManager.Request.NETWORK_WIFI);


// 禁止发出通知,既后台下载,如果要使用这一句必须声明一个权限:android.permission.DOWNLOAD_WITHOUT_NOTIFICATION

request.setShowRunningNotification(true);

request.setVisibleInDownloadsUi(true);

request.setTitle("下载中...");

// request.setNotificationVisibility(request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);//默认通知栏只在下载中显示

// request.setMimeType("application/vnd.android.package-archive");//当通知栏显示完成后,点击通知栏会根据文件类型进行打开

/*

* 设置下载后文件存放的位置,如果sdcard不可用,那么设置这个将报错,因此最好不设置如果sdcard可用,下载后的文件

* 在/mnt/sdcard

* /Android/data/packageName/files目录下面,如果sdcard不可用,设置了下面这个将报错,不设置,

* 下载后的文件在/cache这个 目录下面

*/

// request.setDestinationInExternalFilesDir(this, null, "tar.apk");

long id = downloadManager.enqueue(request);

// TODO 把id保存好,在接收者里面要用,最好保存在Preferences里面

}


使用系统自带下载功能