android利用系统自带的DownloadManager下载文件
2015-03-08 09:40
435 查看
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); Uri uri = Uri.parse("http://203.192.6.150//data/cdn_transfer/23/0F/231f8797d999fc6b67a264bdaefc638ce711e90f.mp4"); Request request = new Request(uri); // 设置允许使用的网络类型,这里是移动网络和wifi都可以 request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI); SystemClock.sleep(2000); // 禁止发出通知,既后台下载,如果要使用这一句必须声明一个权限:android.permission.DOWNLOAD_WITHOUT_NOTIFICATION //request.setShowRunningNotification(false); // 不显示下载界面 request.setVisibleInDownloadsUi(true); /* * 调用setDestinationInExternalFilesDir,设置下载后文件存放的位置,如果sdcard不可用,那么设置这个将报错,因此最好不设置如果sdcard可用,下载后的文件 * 在/mnt/sdcard/Android/data/packageName/files目录下面,如果sdcard不可用, * 设置了下面这个将报错,不设置,下载后的文件在/cache这个 目录下面 */ request.setDestinationInExternalFilesDir(MainActivity.this, null, "tar.mp4"); long id = downloadManager.enqueue(request); public class CompleteReceiver extends BroadcastReceiver { private DownloadManager downloadManager; @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) { Toast.makeText(context, "下载完成了....", Toast.LENGTH_LONG).show(); long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0); // TODO // 判断这个id与之前的id是否相等,如果相等说明是之前的那个要下载的文件 Query query = new Query(); query.setFilterById(id); downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); Cursor cursor = downloadManager.query(query); int columnCount = cursor.getColumnCount(); String path = null; // TODO 这里把所有的列都打印一下,有什么需求,就怎么处理,文件的本地路径就是path while (cursor.moveToNext()) { for (int j = 0; j < columnCount; j++) { String columnName = cursor.getColumnName(j); String string = cursor.getString(j); if (columnName.equals("local_uri")) { path = string; } if (string != null) { Log.i("MainActivity",columnName + ": " + string); } else { Log.i("MainActivity",columnName + ": null"); } } } cursor.close(); // 如果sdcard不可用时下载下来的文件,那么这里将是一个内容提供者的路径,这里打印出来,有什么需求就怎么样处理 // if(path.startsWith("content:")) { cursor = context.getContentResolver().query(Uri.parse(path), null, null, null, null); if(cursor != null){ columnCount = cursor.getColumnCount(); while (cursor.moveToNext()) { for (int j = 0; j < columnCount; j++) { String columnName = cursor.getColumnName(j); String string = cursor.getString(j); if (string != null) { System.out.println(columnName + ": " + string); } else { System.out.println(columnName + ": null"); } } } cursor.close(); } } else if (action.equals(DownloadManager.ACTION_NOTIFICATION_CLICKED)) { Toast.makeText(context, "通知", Toast.LENGTH_LONG).show(); } } }
相关文章推荐
- 搭建android版本更新服务器使用android系统自带的DownloadManager下载文件
- 利用Android自带的DownloadManager实现文件下载进行apk在线升级
- 利用系统自带的下载器4行代码下载文件
- Android编程调用系统自带的拍照功能并返回JPG文件示例【附demo源码下载】
- 使用Android系统提供的DownloadManager来下载文件
- 使用Android自带DownloadManager下载文件
- 使用Android系统提供的DownloadManager来下载文件
- Android 使用系统自带的DownloadManager下载apk
- 使用Android自带DownloadManager下载文件
- Android--调用系统的DownLoadManager去下载文件
- 使用Android自带DownloadManager下载文件
- 使用Android自带DownloadManager下载文件
- 使用Android系统提供的DownloadManager来下载文件。
- 已经越狱的 iPhone、iPad 设备,当通过其自带的 safari 浏览器访问 ipa 应用下载网站时,利用 itms-services 协议,可以一键安装 ipa 文件的 iOS 应用
- Android2.3.3系统开发一个在线OTA功能下载文件功能
- 探究ftp的奥妙之系统用户如何上传下载文件、vsftpd如何识别证书并利用客户端来实现远程连接传输
- Android系统下载管理DownloadManager功能介绍及使用示例
- Android调用系统内部的下载程序下载文件(二)
- ndk开发之利用android系统中.so库文件(例:libsqlite.so)
- Android 下载文件 DownloadManager