Android开发之应用程序的安装

这里介绍的是用XUtils下载apk文件,然后进行安装。

首先用HttpUtils下载文件(记得获取SD卡的读写权限和联网的权限):

 1 /**
 2      * 下载Apk
 3      */
 4     private void downLoadApk() {
 5         //检测是否挂载了SD卡
 6         if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
 7             final String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator+"safer.apk";
 8 
 9             HttpUtils httpUtils = new HttpUtils();
10             httpUtils.download(mDownloadUrl, path, new RequestCallBack<File>() {
11                 //下载成功
12                 @Override
13                 public void onSuccess(ResponseInfo<File> responseInfo) {
14                     Log.i(TAG,"下载成功");
15                     File file = responseInfo.result;
16                     installApk(file);
17                 }
18                 //下载失败
19                 @Override
20                 public void onFailure(HttpException error, String msg) {
21                     Log.i(TAG,"下载失败");
22                 }
23                 //刚开始下载的方法
24                 @Override
25                 public void onStart() {
26                     super.onStart();
27                     Log.i(TAG,"开始下载");
28                 }
29                 //total下载内容的总大小     current当前下载量        isUploading是否正在下载
30                 @Override
31                 public void onLoading(long total, long current, boolean isUploading) {
32                     super.onLoading(total, current, isUploading);
33                     Log.i(TAG,"正在下载");
34                 }
35             });
36 
37         }
38 
39     }

然后就是安装下载来的apk文件:

private void installApk(File file) {
        Intent intent = new Intent("android.intent.action.VIEW");
        intent.addCategory("android.intent.category.DEFAULT");
        intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }

把下好的File直接传进来,然后安装就可以了,。

注意:必须签名文件一样才能进行升级安装。

GitHub:https://github.com/godfunc
博客园:http://www.cnblogs.com/godfunc
Copyright ©2019 Godfunc
原文地址:https://www.cnblogs.com/Godfunc/p/6179620.html