protected void downloadApk() { //apk下载链接地址,放置apk的所在路径 //1,判断sd卡是否可用,是否挂在上 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ //2,获取sd路径 String path = Environment.getExternalStorageDirectory().getAbsolutePath() +File.separator+"mobilesafe74.apk"; //3,发送请求,获取apk,并且放置到指定路径 HttpUtils httpUtils = new HttpUtils(); //4,发送请求,传递参数(下载地址,下载应用放置位置) httpUtils.download(mDownloadUrl, path, new RequestCallBack<File>() { @Override public void onSuccess(ResponseInfo<File> responseInfo) { //下载成功(下载过后的放置在sd卡中apk) Log.i(tag, "下载成功"); File file = responseInfo.result; //提示用户安装 installApk(file); } @Override public void onFailure(HttpException arg0, String arg1) { Log.i(tag, "下载失败"); //下载失败 } //刚刚开始下载方法 @Override public void onStart() { Log.i(tag, "刚刚开始下载"); super.onStart(); } //下载过程中的方法(下载apk总大小,当前的下载位置,是否正在下载) @Override public void onLoading(long total, long current,boolean isUploading) { Log.i(tag, "下载中........"); Log.i(tag, "total = "+total); Log.i(tag, "current = "+current); super.onLoading(total, current, isUploading); } }); } } /** * 安装对应apk * @param file 安装文件 */ protected void installApk(File file) { //系统应用界面,源码,安装apk入口 Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); /*//文件作为数据源 intent.setData(Uri.fromFile(file)); //设置安装的类型 intent.setType("application/vnd.android.package-archive");*/ intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive"); // startActivity(intent); startActivityForResult(intent, 0); }
//开启一个activity后,返回结果调用的方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { enterHome(); super.onActivityResult(requestCode, resultCode, data); }