可能重複:
Programmatically obtain the Android API level of a device?獲取手機的Android的API級別當前運行我的應用程序
如何獲得curently運行我的應用程序在手機的API級別?我相信它很簡單,但我找不到它,因爲我所有的搜索都會造成大量的垃圾。
可能重複:
Programmatically obtain the Android API level of a device?獲取手機的Android的API級別當前運行我的應用程序
如何獲得curently運行我的應用程序在手機的API級別?我相信它很簡單,但我找不到它,因爲我所有的搜索都會造成大量的垃圾。
檢查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
)。
android.os.Build.VERSION.SDK_INT
在這裏你可以找到可能的值:VERSION_CODES
。
這個解決方案不太好,因爲這個常數是自API級別4以來。 – 2011-10-05 00:32:11
試試這個:Float.valueOf(android.os.Build.VERSION.RELEASE)< = 2.1
該值未被定義爲浮點數,例如「2.1-update1」 – 2012-10-13 12:39:34
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)以來。
還有另一個技巧,您可以使用它並使用反射來查看如果SDK_INT存在。如果不是,那麼版本<= 3,至少對於我的目的來說,這足夠好。 – 2011-10-27 07:57:25
完美地工作。同時還有一些「新」:http://developer.android.com/reference/android/os/Build.VERSION_CODES.html – 2012-10-02 13:18:04
我已將它們添加到列表中。 – 2012-10-13 12:37:59
謝謝你只是看不到它;) – Prospero 2010-10-22 18:00:37
'android.os.Build.VERSION.SDK'已棄用在棒棒糖,這意味着「你仍然可以使用這個,但不要指望它,因爲我們可能會取代它與未來的軟件版本中的其他內容(或完全刪除)「。 – 2015-04-16 14:07:40
@ Duraiamuthan.H - 我已經提到,如果您使用API版本4或更新,您應該切換到使用'android.os.Build.VERSION.SDK_INT'。 – birryree 2015-04-16 15:23:50