2011-08-03 40 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