[Android Pro] 判断Uri对应的ContentProvider所操作的数据库u存在,及DownloadManager的暂停,继续...
reference to : http://blog.csdn.net/u012858313/article/details/38821857
项目中遇到一个问题,就是用到DownloadManager的时候先判断一下,如果有自己定义的用自己的,没有的话用系统的,DownloadManager代码其实写在了工程中,所以一开始不太明白,后来想了想,原来指的是downloadmanager里面的数据库DownloadProvider, 因为DownloadProvider不在我工程的清单文件中,而是在公司的手机中已经早定义好了,而系统的DownloadManager中的DownloadProvider更不是我控制的,
1,知道自己定义的Downloads.Impl.CONTENT_URI;
private void chooseDownloads() {Cursor cursor=mContext.getContentResolver().query(uri, null, null, null, null);if (cursor == null) {isSystemDownload = true;systeManager = (android.app.DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);} else {isSystemDownload = false;nonSystemManager = DownloadManager.getInstance(mContext);} }
2.DownloadManager的暂停,
2.DownloadManager的暂停,Uri uri=ContentUris.withAppendedId(android.provider.Downloads.Impl.CONTENT_URI, downloadId); ContentValues values = new ContentValues(); values.put(android.provider.Downloads.COLUMN_CONTROL, android.provider.Downloads.Impl.CONTROL_PAUSED); values.put(android.provider.Downloads.Impl.COLUMN_STATUS, android.provider.Downloads.Impl.STATUS_PAUSED_BY_APP); mContext.getContentResolver().update(uri, values, null, null);
3.DownloadManager继续(必须改变downloadmanager源码,因为系统的downloadmanager不会理会你对Android/android-downloadmanager-pro/
Uri uri=ContentUris.withAppendedId(android.provider.Downloads.Impl.CONTENT_URI,downloadId); ContentValues values = new ContentValues(); if (pausedForWifi) {values.put(android.provider.Downloads.Impl.COLUMN_ALLOWED_NETWORK_TYPES, android.app.DownloadManager.Request.NETWORK_WIFI| android.app.DownloadManager.Request.NETWORK_MOBILE); } values.put(android.provider.Downloads.Impl.COLUMN_CONTROL,android.provider.Downloads.Impl.CONTROL_RUN); values.put(android.provider.Downloads.Impl.COLUMN_STATUS, android.provider.Downloads.Impl.STATUS_RUNNING); mContext.getContentResolver().update(uri, values, null, null);
4.重新开始:
systeManager.restartDownload(downloadId); Uri uri=ContentUris.withAppendedId(android.provider.Downloads.Impl.CONTENT_URI, downloadId); ContentValues values = new ContentValues(); values.put(android.provider.Downloads.Impl.COLUMN_CONTROL, android.provider.Downloads.Impl.CONTROL_RUN); mContext.getContentResolver().update(uri, values, null, null);
5.判断是否为手动控制pause或run
Uri uri=ContentUris.withAppendedId(android.provider.Downloads.Impl.CONTENT_URI, downloadId); Cursor cursor = mContext.getContentResolver().query(uri, null, null,null, null); while (cursor.moveToNext()) {int control=cursor.getInt(cursor.getColumnIndex(android.provider.Downloads.Impl.COLUMN_CONTROL));if (android.provider.Downloads.Impl.CONTROL_RUN!=control&&android.provider.Downloads.Impl.CONTROL_PAUSED != control) {return true;} } return false;
[Android Pro] 判断Uri对应的ContentProvider所操作的数据库u存在,及DownloadManager的暂停,继续...相关推荐
- Android中的URI
就Android平台而言,URI主要分三个部分:scheme, authority and path.其中authority又分为host和port.格式如下: scheme://host:port/ ...
- android 根据文件Uri获取图片url
今天,简单讲讲android里如何通过文件的Uri获取文件的路径url. 昨天,我讲了如何调用手机的文件管理器获取文件资源,但是文件管理器返回的是文件的Uri,我们需要通过Uri获取文件的url才可以 ...
- [Android Pro] proguard.cfg 配置文件
转载自: http://my.oschina.net/zhangzhihao/blog/72393 # ------------------------------------- # android ...
- Android中的URI 和Uri
一.URI与Uri 大家可能经常会看到在开发时,怎么有的时候是URI,有的时候是Uri,这是怎么回事? 名称如此相像的两个类是有什么区别和联系? 1.所属的包不同.URI位置在java.net.URI ...
- [Android Pro] Android保存图片到系统图库
http://stormzhang.github.io/android/2014/07/24/android-save-image-to-gallery/ http://blog.csdn.net/x ...
- [Android Pro] 有关Broadcast作为内部类时注册的一些问题
很经常Broadcast都会写成一个Activity或者Service的内部类.这时候的注册和普通有点小区别. 有两种情况 1.假如是再Manifest文件里面静态注册的话,需要注意. ex: < ...
- [Android Pro] 精确记录和恢复ListView滑动位置
reference to : http://blog.csdn.net/welovesunflower/article/details/7926512 工作中遇到一个需求,对ListView某一项操作 ...
- [Android Pro] ScrollView使用fillViewport设置高度为MatchParent
reference to : http://blog.csdn.net/u012975705/article/details/49275001 之前遇到一问题,就是当使用ScrollView时,Scr ...
- android中怎么网络判断,Android中判断网络是否连接实例详解
Android中判断网络是否连接实例详解 在android中,如何监测网络的状态呢,这个有的时候也是十分重要的,方法如下: public class ConnectionDetector { priv ...
最新文章
- Open***2.4.3 基于用户名密码验证方式(实战)
- 【转】卡尔曼滤波算法详细推导(相当值得一看)
- Hadoop实践之Python(一)
- 企业级监控软件Zabbix搭建部署之使用mutt+msmtp配置Zabbix邮件报警
- CCRD_TOC_2008年第6期
- Linux防火墙配置—访问外网WEB
- figma设计_一种在Figma中跟踪设计迭代的简单方法
- 子集和数问题——回溯法(C++)
- 轻松云上揽胜中华,靠的就是这份聪明的“地图”!
- Vue引入Froala-Editor富文本编辑器
- steam怎么设置邮箱令牌_【教程】电脑端steam动态令牌设置教程
- 概率导论-马尔可夫相关
- Android ViewPager 自定义翻页动画
- 罗马数字相加java_LeetCode题库 13罗马数字转整数(java)
- 远程桌面之客户端连接(MAC远程Windows桌面)
- 超详细的java基础知识学习(java SE、javaEE)笔记 核心重点!
- 合天网安实验室CTF-解密100-Funny Crypto
- GIT fatal: unable to auto-detect email address (got 'Administrator@DESKTOP-880G72L.(none)')
- 跨境电商政策利好,商家如何破局“三封”难题
- 静态链接与动态链接原理