获取当前运行我的应用程序的Android API级别的手机

Mag*_*ero 192 android android-api-levels

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

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

wkl*_*wkl 389

Check 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
   28                  P                         Android 9 Pie
   29                  Q                         Android 10
  10000                CUR_DEVELOPMENT           Current Development Version
Run Code Online (Sandbox Code Playgroud)

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

  • @ Duraiamuthan.H - 我已经提到如果你使用API​​版本4或更新版本,你应该切换到使用`android.os.Build.VERSION.SDK_INT`. (3认同)
  • @ JacksOnF1re Android 5.1.1没有自己的API级别,它只是版本22(Lollipop MR1)上的补丁版本. (2认同)
  • @ JacksOnF1re如果你需要特定版本,那么你使用[`android.os.Build.VERSION.Release`](http://developer.android.com/reference/android/os/Build.VERSION.html#RELEASE)它指定了您正在处理的确切版本. (2认同)

rud*_*ude 135

Integer.valueOf(android.os.Build.VERSION.SDK);
Run Code Online (Sandbox Code Playgroud)

价值观是:

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
Run Code Online (Sandbox Code Playgroud)

注意:请勿使用android.os.Build.VERSION.SDK_INTif <uses-sdk android:minSdkVersion="3" />.

在Android 1.5及更低版本的所有设备上,您将获得例外,因为Build.VERSION.SDK_INT自SDK 4(Donut 1.6)起.

  • "android.os.Build.VERSION.SDK"在棒棒糖中被弃用,这意味着"你仍然可以使用它,但不要指望它,因为我们可能会在未来的软件中用其他东西替换它(或完全删除它)发布". (3认同)
  • @ Duraiamuthan.H你完全正确.我不知道还有谁支持使用API​​ 3的设备,所以`android.os.Build.VERSION.SDK_INT`是检查IMO版本的最佳选择. (2认同)

Cri*_*ian 41

android.os.Build.VERSION.SDK_INT

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

  • 这个解决方案不太好,因为这个常量是从API级别4开始的. (2认同)