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

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


检查android.os.Build。VERSION,这是一个静态类,它保存了关于系统正在运行的Android操作系统的各种信息。

如果你关心所有可能的版本(回到最初的Android版本),就像minSdkVersion被设置为任何小于4的东西,那么你将不得不使用Android .os. build . version。SDK,它是一个字符串,可以转换为版本的整数。

如果你使用的是至少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)。


android.os.Build.VERSION.SDK_INT

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


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


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_INT if <uses-sdk android:minSdkVersion="3" />。

你会在所有Android 1.5及以下的设备上得到例外,因为Build.VERSION。SDK_INT是从SDK 4 (Donut 1.6)开始的。