221

可能重复:
以编程方式获取设备的 Android API 级别?

如何获得当前运行我的应用程序的手机的 Api 级别?我确信它很简单,但我找不到它,因为我所有的搜索都会带来大量的垃圾。

4

4 回答 4

429

Check android.os.Build.VERSION,它是一个静态类,包含有关系统正在运行的 Android 操作系统的各种信息。

如果您关心所有可能的版本(回到原始 Android 版本),因为 inminSdkVersion设置为小于 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
   28                  P                         Android 9 Pie
   29                  Q                         Android 10
  10000                CUR_DEVELOPMENT           Current Development Version

请注意,在 Android N 和 O 之间的一段时间内,Android SDK 开始出现别名CUR_DEVELOPMENT,并且下一个主要 Android 版本的开发者预览版将具有相同的SDK_INT值 ( 10000)。

于 2010-10-22T04:40:34.650 回答
141
Integer.valueOf(android.os.Build.VERSION.SDK);

值为:

Platform Version   API Level
Android 9.0        28
Android 8.1        27
Android 8.0        26
Android 7.1        25
Android 7.0        24
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_INTif <uses-sdk android:minSdkVersion="3" />

您将在 Android 1.5 及更低版本的所有设备上遇到异常,因为Build.VERSION.SDK_INT自 SDK 4 (Donut 1.6) 起。

于 2010-10-22T09:11:15.313 回答
47

android.os.Build.VERSION.SDK_INT

在这里您可以找到可能的值:VERSION_CODES

于 2010-10-22T04:41:45.877 回答
-14

试试这个:Float.valueOf(android.os.Build.VERSION.RELEASE) <= 2.1

于 2010-10-22T05:23:35.973 回答