版本更新

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);
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值