2011-08-03 141 views
0

我想在我的代码中创建一个条件来比较Android版本。如何比较Android版本

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

请问谁能让我知道该怎么做?

+0

Duplicate http://stackoverflow.com/questions/3506792/android-api-version-programmatically –

+0

请参阅此线程:http://stackoverflow.com/questions/3423754/retrieving-android-api-version-以编程方式 – NguyenDat

+0

我发现了关于比较的好主意,阅读它,最棒的是:http://www.osbuzzer.com/f5/difference-between-android-2-2-froyo-android-2-3-gingerbread-158/ – 2011-08-03 12:17:36

回答

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

试试这个:

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

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

+0

请提供一些解释,除了代码。 – Jan