2010-10-22 39 views

回答

340

檢查android.os.Build.VERSION,這是一個靜態類,包含系統正在運行的各種Android OS信息。

如果你關心的所有版本的可能(回原來的Android版本),在minSdkVersion設置爲任何小於4,那麼你將不得不使用android.os.Build.VERSION.SDK,這是一個String可以轉換爲整數發佈。

如果您至少使用API​​版本4(Android 1.6 Donut),則獲取API級別的當前建議方法是檢查android.os.Build.VERSION.SDK_INT的值,該值爲整數。

在這兩種情況下,你在android.os.Build.VERSION_CODES定義的所有那些得到映射到一個枚舉值的整數:

SDK_INT value  Build.VERSION_CODES  Human Version Name  
    1     BASE      Android 1.0 (no codename) 
    2     BASE_1_1     Android 1.1 Petit Four 
    3     CUPCAKE     Android 1.5 Cupcake 
    4     DONUT      Android 1.6 Donut 
    5     ECLAIR     Android 2.0 Eclair 
    6     ECLAIR_0_1    Android 2.0.1 Eclair     
    7     ECLAIR_MR1    Android 2.1 Eclair 
    8     FROYO      Android 2.2 Froyo 
    9     GINGERBREAD    Android 2.3 Gingerbread 
    10     GINGERBREAD_MR1   Android 2.3.3 Gingerbread 
    11     HONEYCOMB     Android 3.0 Honeycomb 
    12     HONEYCOMB_MR1    Android 3.1 Honeycomb 
    13     HONEYCOMB_MR2    Android 3.2 Honeycomb 
    14     ICE_CREAM_SANDWICH  Android 4.0 Ice Cream Sandwich 
    15     ICE_CREAM_SANDWICH_MR1 Android 4.0.3 Ice Cream Sandwich 
    16     JELLY_BEAN    Android 4.1 Jellybean 
    17     JELLY_BEAN_MR1   Android 4.2 Jellybean 
    18     JELLY_BEAN_MR2   Android 4.3 Jellybean 
    19     KITKAT     Android 4.4 KitKat 
    20     KITKAT_WATCH    Android 4.4 KitKat Watch 
    21     LOLLIPOP     Android 5.0 Lollipop 
    22     LOLLIPOP_MR1    Android 5.1 Lollipop 
    23     M       Android 6.0 Marshmallow 
    24     N       Android 7.0 Nougat 
    25     N_MR1      Android 7.1.1 Nougat 
    26     O       Android 8.0 Oreo 
    27     O_MR1      Android 8 Oreo MR1 
    10000    CUR_DEVELOPMENT   Current Development Version 

請注意,Android N和O之間的一段時間中,Android SDK就開始走樣CUR_DEVELOPMENT和開發商下一個主要的Android版本的預覽是相同的SDK_INT值(10000)。

+0

謝謝你只是看不到它;) – Prospero 2010-10-22 18:00:37

+0

'android.os.Build.VERSION.SDK'已棄用在棒棒糖,這意味着「你仍然可以使用這個,但不要指望它,因爲我們可能會取代它與未來的軟件版本中的其他內容(或完全刪除)「。 – 2015-04-16 14:07:40

+3

@ Duraiamuthan.H - 我已經提到,如果您使用API​​版本4或更新,您應該切換到使用'android.os.Build.VERSION.SDK_INT'。 – birryree 2015-04-16 15:23:50

-10

試試這個:Float.valueOf(android.os.Build.VERSION.RELEASE)< = 2.1

+2

該值未被定義爲浮點數,例如「2.1-update1」 – 2012-10-13 12:39:34

131
Integer.valueOf(android.os.Build.VERSION.SDK); 

值是:

Platform Version API Level 
Android 6.0  23 
Android 5.1  22 
Android 5.0  21 
Android 4.4W  20 
Android 4.4  19 
Android 4.3       18 
Android 4.2  17 
Android 4.1       16 
Android 4.0.3     15 
Android 4.0       14 
Android 3.2       13 
Android 3.1       12 
Android 3.0       11 
Android 2.3.3     10 
Android 2.3       9 
Android 2.2       8 
Android 2.1       7 
Android 2.0.1     6 
Android 2.0       5 
Android 1.6       4 
Android 1.5       3 
Android 1.1       2 
Android 1.0       1 

注意:不使用android.os.Build.VERSION.SDK_INT如果<uses-sdk android:minSdkVersion="3" />

在Android 1.5及更低版本的所有設備上,您將得到例外,因爲Build.VERSION.SDK_INT自SDK 4(甜甜圈1.6)以來。

+0

還有另一個技巧,您可以使用它並使用反射來查看如果SDK_INT存在。如果不是,那麼版本<= 3,至少對於我的目的來說,這足夠好。 – 2011-10-27 07:57:25

+0

完美地工作。同時還有一些「新」:http://developer.android.com/reference/android/os/Build.VERSION_CODES.html – 2012-10-02 13:18:04

+0

我已將它們添加到列表中。 – 2012-10-13 12:37:59

相關問題