Android 版本号比较

Android版本升级的时候一般都会比较服务器上的版本和本地的版本,看是否需要升级。

 public  boolean compareVersions(String otaPackageVersion, String systemVersion) {
        //判断是否为空数据(otaPackageVersion为服务器上版本号,systemVersion为本地版本号)
        if ((otaPackageVersion == null) || systemVersion == null) {
            return false;
        } 
        String[] otaPackageVersionArray = otaPackageVersion.split("\\.");
        String[]  systemVersionArray= systemVersion.split("\\.");


        if (otaPackageVersionArray.length == systemVersionArray.length) {
            for (int i = 0; i < otaPackageVersionArray.length; i++) {
                if (Integer.parseInt(otaPackageVersionArray[i]) > Integer.parseInt(systemVersionArray[i])) {
                    return true;
                } else if (Integer.parseInt(otaPackageVersionArray[i]) < Integer.parseInt(systemVersionArray[i])) {
                    return false;
                } else if (Integer.parseInt(otaPackageVersionArray[i]) == Integer.parseInt(systemVersionArray[i])) {


                }
            }
        } else {
            if (otaPackageVersionArray.length > systemVersionArray.length) {
                for (int i = 0; i < systemVersionArray.length; i++) {
                    if (Integer.parseInt(otaPackageVersionArray[i]) > Integer.parseInt(systemVersionArray[i])) {
                        return true;
                    } else if (Integer.parseInt(otaPackageVersionArray[i]) < Integer.parseInt(systemVersionArray[i])) {
                        return false;


                    } else if (Integer.parseInt(otaPackageVersionArray[i]) == Integer.parseInt(systemVersionArray[i])) {
                        if (systemVersionArray.length == 1) {
                            continue;
                        }
                        if (i == systemVersionArray.length - 1) {


                            for (int j = i; j < otaPackageVersionArray.length; j++) {
                                if (Integer.parseInt(otaPackageVersionArray[j]) != 0) {
                                    return true;
                                }
                                if (j == otaPackageVersionArray.length - 1) {
                                    return false;
                                }


                            }
                            return true;
                        }
                    }
                }
            } else {
                for (int i = 0; i < otaPackageVersionArray.length; i++) {
                    if (Integer.parseInt(otaPackageVersionArray[i]) > Integer.parseInt(systemVersionArray[i])) {
                        return true;
                    } else if (Integer.parseInt(otaPackageVersionArray[i]) < Integer.parseInt(systemVersionArray[i])) {
                        return false;


                    } else if (Integer.parseInt(otaPackageVersionArray[i]) == Integer.parseInt(systemVersionArray[i])) {
                        if (otaPackageVersionArray.length == 1) {
                            continue;
                        }
                        if (i == otaPackageVersionArray.length - 1) {
                            return false;


                        }
                    }


                }
            }
        }
        return false;
    }
    

猜你喜欢

转载自blog.csdn.net/qq_32390877/article/details/80741316