这里介绍的是用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直接传进来,然后安装就可以了,。
注意:必须签名文件一样才能进行升级安装。