Android 版本更新及akp安装

android 同时被 3 个专栏收录
5 篇文章 0 订阅
6 篇文章 0 订阅
5 篇文章 0 订阅

首先我们先看一下整体的逻辑思路

版本检测

  1. 从服务器获取版本信息 ;
  2. 获取本地的版本信息;
  3. 本地与服务器的信息相比较;

更新

  1. 如果服务器中的版本大于本地的话那么我们就需要更新了;
  2. 弹框提示(根据项目需要);
  3. 开启线程url(服务器会反给你的)下载新的apk;

安装

  1. 安装这里就是有个路径问题,根据自己的项目需求就行,还
    有就是大家别忘了添加一个访问内存的权限就行;

话不多说直接上代码

首先大家依赖一下: ‘com.allenliu.versionchecklib:library:2.0.5’
它里面已经写好了我们直接用就可以了,以后有更好的再给大家推荐
(用什么都是可以的 思路都是一样的)

        /**
         * 获取apk的版本号 currentVersionCode
         */
        private void showUpdaloadDialog(final String downloadUrl) {

            builder = AllenVersionChecker
                    .getInstance()
                    .requestVersion()
                    .setRequestUrl("")
                    .request(new RequestVersionListener() {
                        @Nullable
                        @Override
                        public UIData onRequestVersionSuccess(String result) {
//                        Toast.makeText(context, "request successful", Toast.LENGTH_SHORT).show();
                            return crateUIData(downloadUrl);
                        }

                        @Override
                        public void onRequestVersionFailure(String message) {
//                        Toast.makeText(context, "request failed", Toast.LENGTH_SHORT).show();

                        }
                    });
            builder.setDirectDownload(true);
            builder.setShowNotification(true);
            builder.setShowDownloadingDialog(false);
            builder.setShowDownloadFailDialog(false);
            //自定义下载路径
            builder.setDownloadAPKPath(Environment.getExternalStorageDirectory() + "/ALLEN/AllenVersionPath2/");

            builder.excuteMission(context);
        }

下面是弹框提示

        private UIData crateUIData(String downloadUrl) {
            UIData uiData = UIData.create();
            uiData.setDownloadUrl(downloadUrl);
            //标题
            uiData.setTitle(context.getString(R.string.update_title));
            内容
            uiData.setContent(context.getString(R.string.updatecontent));
            return uiData;
        }

图文流程

Mon 06 Mon 13 Mon 20 版本检测 更新 安装apk 删除旧包 流程 版本更新流程图

到这里就结束了,如有不对的地方欢迎大家指出交流学习!

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值