【发布时间】:2011-10-18 18:38:55
【问题描述】:
我正在尝试在我的代码中创建一个条件来比较 Android 版本。类似于;
if(version < 2.2)
{// TODO }
else
{// TODO }
谁能告诉我怎么做?
【问题讨论】:
-
我找到了关于比较的好帖子,阅读它,最重要的是:osbuzzer.com/f5/…
标签: android version android-version
我正在尝试在我的代码中创建一个条件来比较 Android 版本。类似于;
if(version < 2.2)
{// TODO }
else
{// TODO }
谁能告诉我怎么做?
【问题讨论】:
标签: android version android-version
使用此代码:
int currentVersion = android.os.Build.VERSION.SDK_INT;
if (currentVersion >= android.os.Build.VERSION_CODES.LOLLIPOP){
// Do something for lollipop and above versions
} else{
// do something for phones running an SDK before lollipop
}
【讨论】:
您可以使用 Build.VERSION.SDK_INT 将它们作为整数版本进行比较,因此对于 SDK v 2.2,您将获得值为 8 的整数,而对于 SDK v 3.0,您将获得 11。
请看这个bunch of how to get android version question asked and answered again,我建议你使用搜索框,并在你写你的问题时浏览一下提供的相关问题:)
【讨论】:
试试这个:
private boolean compareVersion(String currrentsVersion, String officialVersion) {
isEqual = false;
String[] string1 = currrentsVersion.split("[.]");
String[] string2 = officialVersion.split("[.]");
Integer[] number2 = new Integer[string2.length];
Integer[] numbers = new Integer[string2.length];
for (int i = 0; i < string2.length; i++) {
if (string1.length-1<i)
numbers[i] = 0;
else
numbers[i] = Integer.parseInt(string1[i]);
System.out.println("number1 ::: " + numbers[i]);
}
for (int i = 0; i < string2.length; i++) {
number2[i] = Integer.parseInt(string2[i]);
System.out.println("number2 ::: " + number2[i]);
}
for (int i = 0; i < number2.length; i++) {
if (number2[i] > numbers[i]) {
isEqual = false;
break;
} else {
isEqual = true;
}
}
return isEqual;
}
在你想比较版本的地方调用这个方法。
if (compareVersion(getVersionInfo(), officialVersion))
tvUpdateStatus.setText("Have the latest version installed :) ");
else
tvUpdateStatus.setText("Plz Update the Application");
我希望它会有所帮助。 ;)
【讨论】: