Android app检测更新功能

来源:互联网 发布:微单和单反的区别知乎 编辑:程序博客网 时间:2024/05/16 06:02

话不多说, 直接上核心代码

 //检查更新, 返回接口数据HttpConfig.apiVersionVcheckedTask(new TaskCallBack() {    @Override    public void onPostExecute(String string) {        //将接口返回来的json解析为model        HttpResult<Version> result = JsonUtil.jsonToModel(string, new TypeReference<HttpResult<Version>>(){});        //检查返回的结果是否有效        if (!HttpConfig.isValid(result) || result.getPayload() == null) {            return;        }        //版本Model        final Version version = result.getPayload();        //本地获取版本号        int oldCode = VersionUtil.getVersionCode(activity);        //接口返回的版本号        String versionCode = version.getVersionCode();        int newCode;        try {            newCode = Integer.parseInt(versionCode);        }catch (Exception ex){            newCode = 0;        }        //将远程服务器中的版本号与本地版本号进行比较        if (newCode >= 0 && oldCode >= 0 && newCode > oldCode) {            LogUtil.println("有新版本");            //app下载地址不为空, 继续下面的操作            if (!StringUtil.isEmpty(version.getPath())) {                //TODO                //我这里是直接跳转到网页去下载app, 你也可以在点击按钮后才跳转                LogUtil.println("开始下载apk:" + version.getPath());                Uri uri = Uri.parse(version.getPath());                Intent intent = new Intent(Intent.ACTION_VIEW, uri);                activity.startActivity(intent);            }            return;        }        LogUtil.println("已经最新版本");    }});
/** * 获取apk本地版本号 * @param context * @return */public static int getVersionCode(Context context) {    try {        PackageInfo pi=context.getPackageManager().getPackageInfo(context.getPackageName(), 0);        return pi.versionCode;    } catch (PackageManager.NameNotFoundException e) {        e.printStackTrace();        return 0;    }}
0 0
原创粉丝点击