本文主要是介绍DownloadManager+MaterialDialog下载进度和6.0安装APK和“”应用未安装“”问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先来个图:
附个链接:
material-dialogs
再附个链接(以微信的APK下载地址为例吧):
http://gdown.baidu.com/data/wisegame/8d5889f722f640c8/weixin_800.apk
系统下载器DownLoadManager本身下载在通知栏中都有进度条,但是我想自己手动弹出一个dialog显示进度,所有就有了使用内容观察者ContentObserver实现进度。
1、ContentObserver作用:显示进度
2、BroadcastReceiver的作用:监听系统已经下载完毕发出的广播
1、主Activity
package com.zx.version;import android.app.DownloadManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;import com.afollestad.materialdialogs.MaterialDialog;import cn.trinea.android.common.util.PreferencesUtils;public class DownloadActivity extends AppCompatActivity {public static final String DOWNLOAD_ID = "download_id";private DownloadChangeObserver downloadObserver;private long lastDownloadId = 0;//"content://downloads/my_downloads"必须这样写不可更改public static final Uri CONTENT_URI = Uri.parse("content://downloads/my_downloads");private MaterialDialog materialDialog;private String NetUrl = "http://gdown.baidu.com/data/wisegame/8d5889f722f640c8/weixin_800.apk";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_downloa
这篇关于DownloadManager+MaterialDialog下载进度和6.0安装APK和“”应用未安装“”问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!