/**
* 使用系统自带下载功能
* @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里面
}