可能重复:以编程方式获取设备的Android API级别?
如何让手机的Api级别运行我的应用程序?我确信它很简单,但我无法找到它,因为我所有的搜索都会带来大量的垃圾 .
检查android.os.Build.VERSION,这是一个静态类,包含有关系统正在运行的Android OS的各种信息 .
如果您关心所有可能的版本(回到原始Android版本),因为minSdkVersion设置为小于4的任何值,那么您将必须使用android.os.Build.VERSION.SDK,这是一个 String ,可以转换为版本的整数 .
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 P 10000 CUR_DEVELOPMENT Current Development Version
请注意,在Android N和O之间的某个时间,Android SDK开始别名 CUR_DEVELOPMENT ,并且下一个主要Android版本的开发者预览与 SDK_INT 值( 10000 )相同 .
CUR_DEVELOPMENT
SDK_INT
10000
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
CAUTION: 如果 <uses-sdk android:minSdkVersion="3" /> ,请不要使用 android.os.Build.VERSION.SDK_INT .
<uses-sdk android:minSdkVersion="3" />
android.os.Build.VERSION.SDK_INT
在Android 1.5及更低版本的所有设备上,您将获得例外,因为 Build.VERSION.SDK_INT 是自SDK 4(Donut 1.6)以来 .
Build.VERSION.SDK_INT
在这里您可以找到可能的值:VERSION_CODES .
试试这个:Float.valueOf(android.os.Build.VERSION.RELEASE)<= 2.1
4 回答
检查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中定义的所有枚举值:
请注意,在Android N和O之间的某个时间,Android SDK开始别名
CUR_DEVELOPMENT
,并且下一个主要Android版本的开发者预览与SDK_INT
值(10000
)相同 .值是:
CAUTION: 如果
<uses-sdk android:minSdkVersion="3" />
,请不要使用android.os.Build.VERSION.SDK_INT
.在Android 1.5及更低版本的所有设备上,您将获得例外,因为
Build.VERSION.SDK_INT
是自SDK 4(Donut 1.6)以来 .android.os.Build.VERSION.SDK_INT
在这里您可以找到可能的值:VERSION_CODES .
试试这个:Float.valueOf(android.os.Build.VERSION.RELEASE)<= 2.1