Android通过检查版本名判断是否弹窗更新

private boolean assertVersionUpdate(String remoteUpdateName) {
Log.d("debug", "打印远程的版本名->" + remoteUpdateName);
if (remoteUpdateName == null || remoteUpdateName.equals("")) {
return false;
}
String[] remoteVersionNameArr = remoteUpdateName.split("[.]");
if (remoteVersionNameArr.length <= 0) {
return false;
} else {
int index = 0;
while (index < remoteVersionNameArr.length) {
java.lang.String a = remoteVersionNameArr[index];
android.util.Log.d("debug", "遍历远程版本->" + a);
index ++;
}
}
String remoteMajorVersionName = remoteVersionNameArr[0];
String remoteMinorVersionName = remoteVersionNameArr[1];
String remotePhaseVersionName = remoteVersionNameArr[2];
int iRemoteMajorVersionName = Integer.parseInt(remoteMajorVersionName);
int iRemoteMinorVersionName = Integer.parseInt(remoteMinorVersionName);
int iRemotePhaseVersionName = Integer.parseInt(remotePhaseVersionName);
PackageManager packageManager = getPackageManager();
try {
PackageInfo packageInfo = packageManager.getPackageInfo(getPackageName(), 0);
String versionName = packageInfo.versionName;
android.util.Log.d("debug", "打印本地的版本名->" + versionName);
String[] versionNameSplitArray = versionName.split("[.]");
if (versionNameSplitArray.length > 0) {
int index = 0;
while (index < versionNameSplitArray.length) {
java.lang.String localVersion = versionNameSplitArray[index];
android.util.Log.d("debug", "遍历本地的版本->" + localVersion);
index ++;
}
String majorVersionName = versionNameSplitArray[0];
String minorVersionName = versionNameSplitArray[1];
String phaseVersionName = versionNameSplitArray[2];
int iMajorVersionName = Integer.parseInt(majorVersionName);
int iMinorVersionName = Integer.parseInt(minorVersionName);
int iPhaseVersionName = Integer.parseInt(phaseVersionName);
if (iRemoteMajorVersionName > iMajorVersionName) {
android.util.Log.d("debug", "远程主版本号大于本地的主版本号");
return true;
} else if (iRemoteMajorVersionName == iMajorVersionName) {
android.util.Log.d("debug", "远程主版本号等于本地的主版本号");
if (iRemoteMinorVersionName > iMinorVersionName) {
android.util.Log.d("debug", "远程次版本号大于本地的次版本号");
return true;
} else if (iRemoteMinorVersionName == iMinorVersionName) {
android.util.Log.d("debug", "远程次版本号等于本地的次版本号");
if (iRemotePhaseVersionName > iPhaseVersionName) {
android.util.Log.d("debug", "远程阶段版本号大于本地的阶段版本号");
return true;
} else if (iRemotePhaseVersionName == iPhaseVersionName) {
android.util.Log.d("debug", "远程阶段版本号等于本地的阶段版本号");
return false;
} else {
android.util.Log.d("debug", "远程阶段版本号小于本地的阶段版本号");
return false;
}
} else {
android.util.Log.d("debug", "远程次版本号小于本地的次版本号");
return false;
}
} else {
android.util.Log.d("debug", "远程主版本号小于本地的主版本号");
return false;
}
}
} catch (PackageManager.NameNotFoundException nameNotFoundException) {
nameNotFoundException.printStackTrace();
}
return false;
}
posted @ 2023-06-27 11:18  JianfeiMa  阅读(21)  评论(0)    收藏  举报