Android 升级apk 兼容6.0 7.0

其实,这块内容网上有很多,但我还是提倡用android 自带的DownloadManager,我们先来了解下DownloadManager的用法。

1.获取DownloadManager:

downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);

2.声明一个请求类

 //获取一个下载请求
    DownloadManager.Request request = new DownloadManager.Request()

    //设置wifi,流量都可以下载
    request.setAllowedNetworkTypes();

    //漫游网络是否可以下载
    request.setAllowedOverRoaming();

    //在通知栏中显示标题,默认就是显示的
    request.setTitle();

    //设置隐藏通知栏下载
    request.setNotificationVisibility();

    //设置下载路径
    request.setDestinationInExternalPublicDir();

3.将请求加入请求队列,开始下载

    //加入下载队列后会给该任务返回一个long型的id,
    //通过该id可以取消任务,重启任务等等
    mTaskId = downloadManager.enqueue(request);

4.移除这个下载任务请求(这个很重要,不然你下载完后,取消安装,再次下载时,你获取的当前下载进度就会出错。所以,你在第一次下载完后,一定要调如下函数

downloadManager.remove(mTaskId)

5.获取下载任务信息

DownManager会对所有的现在任务进行保存管理,这时候就要用到DownManager.Query对象,通过此对象,我们可以查询所有下载任务信息。

setFilterById(long… ids):根据任务编号查询下载任务信息

setFilterByStatus(int flags):根据下载状态查询下载任务

DownloadManager.Query query = new DownloadManager.Query();
    query.setFilterByStatus(status);
    Cursor cursor= downManager.query(query);

6.获取当前下载的字节数,总共字节数。

long curBytes = cursor
  .getLong(cursor.getColumnIndexOrThrow(DownloadManager.COLU
                MN_BYTES_DOWNLOADED_SO_FAR));

  long totalBytes = cursor .getLong(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));

  float mProgress = ((float) (curBytes * 100) / totalBytes);

7.android 6.0兼容,这个自己写个权限判断就行了。

8.android 7.0的兼容

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="${applicationId}.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/filepaths" />
    </provider>

@xml/filepaths :这个文件是在layout下,创建一个xml文件夹,在创建一个filepaths.xml 文件,filepaths.xml 内容如下:

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-path
        name="external_storage_root"
        path="." />
</paths>

最后当然是Demo链接地址下载:
http://download.csdn.net/detail/jimtrency/9866203

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值