我们需要从git上下在一个封装好的Xutils.jar工具包,里面封装好了,下载方法,直接把jar包放到libs中就能使用了
步骤:
1.下载xUtils-master.zip工具包
2.解压会生成
3.把.jar工具包放到android项目的libs文件中,就可以使用了
/**
*(1).首先判断是否挂载外置Sdcard
*(2).从网络下载,创建httpUtils对象,并设置目标下载路径target
*(3).重写OnLoading,onSucess,onfailed方法
/
protected void download() {
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
tvProgress.setVisibility(View.VISIBLE);
HttpUtils utils=new HttpUtils();
String target=Environment.getExternalStorageDirectory()+"/update.apk";
utils.download(mDownloadUrl, target, new RequestCallBack<File>() {
@Override
public void onLoading(long total, long current, boolean isUploading) {
super.onLoading(total, current, isUploading);
tvProgress.setText("下载进度:"+current*100/total+"%");//进度条按百分比更新
}
@Override
public void onSuccess(ResponseInfo<File> arg0) {
Toast.makeText(SplashActivity.this, "下载完成!!!", Toast.LENGTH_SHORT).show();
//跳转到系统下载页面,进行安装.
Intent intent=new Intent(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_DEFAULT);
//解析目标路径下的新.apk文件进行安装
intent.setDataAndType(Uri.fromFile(arg0.result), "application/vnd.android.package-archive");
//如果用户取消安装的话,会回调OnActivityResult方法,跳转到主界面
startActivityForResult(intent, 0);
}
@Override
public void onFailure(HttpException arg0, String arg1) {
Toast.makeText(SplashActivity.this, "下载失败!!!", Toast.LENGTH_SHORT).show();
}
});
}else{
Toast.makeText(SplashActivity.this, "没有找到sdcard!", Toast.LENGTH_SHORT).show();
}
}
//弹出安装框,如果用户取消安装的话,会调此方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
enterMain();
super.onActivityResult(requestCode, resultCode, data);
}