版本更新

来源:互联网 发布:mac三国志13战斗好卡 编辑:程序博客网 时间:2024/06/05 06:36
1.先创建一个Bean类,里面定义 路径和当前的版本号,创建方法
private  int versionCode=100;private  String path;2.获取当前版本信息
private String url="http://125.39.134.47/r/a.gdown.baidu.com/data/wisegame/7c28ac069399b336/kuaishou_4812.apk";private String baopath=Environment.getExternalStorageDirectory()+"/。。。/kuaishou.apk";private Callback.Cancelable get;private ProgressDialog dialog;


try {    //获取包的管理类    PackageManager packageManager = getActivity().getPackageManager();    //获取包的信息    PackageInfo packageInfo = packageManager.getPackageInfo(getActivity().getPackageName(),0);    //获取当前的版本号    int xianversionCode = packageInfo.versionCode;    //在用抓包工具,把下载路径抓下来    BanBen_Bean version=new BanBen_Bean();    //把路径装到对象里    version.setPath(url);    //现在版本小于请求请求下来的版本    if(xianversionCode<version.getVersionCode())    {        //更新保存路径        File file= new File(baopath);        //路径不等于空并且存在       if(file!=null&&file.exists())       {           //直接走安装方法           install(file);       }       //走下载方法       else       {            xiaz();       }    }} catch (PackageManager.NameNotFoundException e) {    e.printStackTrace();}

3.创建一个对话框
private void progressdialog(){    dialog = new ProgressDialog(getActivity());    //设置进度形式    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);    //设置暂停按钮    dialog.setButton(ProgressDialog.BUTTON_NEGATIVE,"暂停",     new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialogInterface, int i) {            //取消            get.cancel();        }    });}4.下载方法
RequestParams params=new RequestParams(url);//设置支持断点续传params.setAutoResume(true);//设置支持立即取消params.setCancelFast(true);//判断sdcard是否是挂载状态if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){    params.setSaveFilePath(baopath);}//Progress下载方式get = x.http().get(params, new Callback.ProgressCallback<File>() {    //成功    @Override    public void onSuccess(File result) {        //直接走安装方法        install(result);    }    //失败    @Override    public void onError(Throwable ex, boolean isOnCallback) {    }    //取消    @Override    public void onCancelled(CancelledException cex) {    }    //结束    @Override    public void onFinished() {    }    //等待    @Override    public void onWaiting() {    }    //开始    @Override    public void onStarted() {        //开始显示对话框        dialog.show();    }    //过程中    @Override    public void onLoading(long total, long current, boolean isDownloading) {        if (isDownloading==true)        {            //最大的进度            dialog.setMax((int) total);            //当前的进度            dialog.setProgress((int) current);        }    }});

5.安卓固定的安装方法private void install(File file) {    //调用系统安装器    Intent intent = new Intent(Intent.ACTION_VIEW);    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    intent.setDataAndType(Uri.parse("file://" + file.getAbsolutePath()), "application/vnd.android.package-archive");    startActivity(intent);}




原创粉丝点击