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