app自动更新安装完毕并打开

直接代码复制吧 从下载apk开始

private void downloadAPK() {
//        // 判断sd卡状态是否正常
//        if (!Environment.getExternalStorageState().equals(
//                Environment.MEDIA_MOUNTED)) {
//            Toast.makeText(getApplicationContext(), "sd卡异常", Toast.LENGTH_SHORT).show();
//            return;
//        }
        final ProgressDialog pDialog = new ProgressDialog(this);
        // 设置进度条为横向进度条
        pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//        pDialog.show();
        pDialog.setCanceledOnTouchOutside(false);   //点击progress以外的地方不消失


        OkHttpUtils
                .get()
                .url(Global.UPGRADE_NEW)
                .build()
                .execute(new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(), "universe3000.apk") {
                    @Override
                    public void onError(Call call, Exception e, int id) {
                        // 下载失败后进度条消失
                        pDialog.dismiss();
                    }

                    @Override
                    public void onResponse(File response, int id) {
                        installAPK(response);
                    }

                    @Override
                    public void inProgress(float progress, long total, int id) {
                        super.inProgress(progress, total, id);

                        pDialog.setMax(100);
                        pDialog.setProgress((int) (progress * 100));

                    }

                    @Override
                    public void onBefore(okhttp3.Request request, int id) {
                        super.onBefore(request, id);
                        pDialog.show();
                    }
                });

    }

    /*
            * 安装apk
     *
             * @param apkFile
     */
    private static final int REQUEST_CODE_INSTALL = 1001;

    protected void installAPK(File apkFile) {
        // 隐式调用系统的安装页面
        // <intent-filter>
        // <action android:name="android.intent.action.VIEW" />
        // <category android:name="android.intent.category.DEFAULT" />
        // <data android:scheme="content" />
        // <data android:scheme="file" />
        // <data android:mimeType="application/vnd.android.package-archive" />
        // </intent-filter>
  Intent intent = new Intent();
    if(Build.VERSION.SDK_INT>=24) { //判读版本是否在7.0以上
        //添加这一句表示对目标应用临时授权该Uri所代表的文件
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    }else {

        // intent.setAction("android.intent.action.VIEW");
        intent.setAction(Intent.ACTION_VIEW);
        intent.addCategory("android.intent.category.DEFAULT");
    }
        intent.setDataAndType(Uri.fromFile(apkFile),
                "application/vnd.android.package-archive");
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivityForResult(intent, REQUEST_CODE_INSTALL);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值