
这里介绍的是用XUtils下载apk文件,然后进行安装。
首先用HttpUtils下载文件(记得获取SD卡的读写权限和联网的权限):
/** * 下载Apk */ private void downLoadApk() { //检测是否挂载了SD卡 if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ final String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator+"safer.apk"; HttpUtils httpUtils = new HttpUtils(); httpUtils.download(mDownloadUrl, path, new RequestCallBack<File>() { //下载成功 @Override public void onSuccess(ResponseInfo<File> responseInfo) { Log.i(TAG,"下载成功"); File file = responseInfo.result; installApk(file); } //下载失败 @Override public void onFailure(HttpException error, String msg) { Log.i(TAG,"下载失败"); } //刚开始下载的方法 @Override public void onStart() { super.onStart(); Log.i(TAG,"开始下载"); } //total下载内容的总大小 current当前下载量 isUploading是否正在下载 @Override public void onLoading(long total, long current, boolean isUploading) { super.onLoading(total, current, isUploading); Log.i(TAG,"正在下载"); } }); } }
然后就是安装下载来的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直接传进来,然后安装就可以了,。
注意:必须签名文件一样才能进行升级安装。