【问题标题】:how to compare Android versions如何比较Android版本
【发布时间】:2011-10-18 18:38:55
【问题描述】:

我正在尝试在我的代码中创建一个条件来比较 Android 版本。类似于;

if(version < 2.2)
{// TODO } 
else
{// TODO }

谁能告诉我怎么做?

【问题讨论】:

标签: android version android-version


【解决方案1】:

使用此代码:

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
}

【讨论】:

    【解决方案2】:

    您可以使用 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,我建议你使用搜索框,并在你写你的问题时浏览一下提供的相关问题:)

    【讨论】:

    • 阿尤布林,你是救生员。非常感谢!!
    【解决方案3】:

    试试这个:

    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");
    

    我希望它会有所帮助。 ;)

    【讨论】:

    • 请在代码之外提供一些解释。
    猜你喜欢
    • 2011-03-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2012-11-08
    相关资源
    最近更新 更多