Get Android API level of phone currently running my application
Check android.os.Build.VERSION
, which is a static class that holds various pieces of information about the Android OS a system is running.
If you care about all versions possible (back to original Android version), as in minSdkVersion
is set to anything less than 4, then you will have to use android.os.Build.VERSION.SDK
, which is a String
that can be converted to the integer of the release.
If you are on at least API version 4 (Android 1.6 Donut), the current suggested way of getting the API level would be to check the value of android.os.Build.VERSION.SDK_INT
, which is an integer.
In either case, the integer you get maps to an enum value from all those defined in 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
Note that some time between Android N and O, the Android SDK began aliasing CUR_DEVELOPMENT
and the developer preview of the next major Android version to be the same SDK_INT
value (10000
).
Check Android API level AT application launch?
There is no any built-in feature that allows you to do it. The easiest workaround is to create a stub activity that will only start an appropriate activity dependeing on the current android version.
public class StubActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
startActivity(new Intent(this, ICSActivity.class));
} else {
startActivity(new Intent(this, PreICSActivity.class));
}
finish();
}
}
How to check API level of device and use Actionbar if API is 11 or higher?
To remove this warning you need to tell the IDE you are aware that the methods/fileds/classes you use are available since later SDK than your minimum supported. This is done via @TargetApi
annotation. In your case @TargetApi(Build.VERSION_CODES.HONEYCOMB)
annotated method or the whole class.
Important: This will only remove the warning, you still have to ensure that these methods do NOT get called on devices where they don't exist.
Related Topics
Enable and Disable a Broadcast Receiver
Does Alarm Manager Persist Even After Reboot
How to Create Standard Borderless Buttons (Like in the Design Guideline Mentioned)
Quality Problems When Resizing an Image at Runtime
How to Turn Off 3G/Data Programmatically on Android
Android Drawable Images from Url
How to Set Textview Textstyle Such as Bold, Italic
Detecting When Screen Is Locked
Gcm Push Notification Works After App Force Stop
Transparent Actionbar: Custom Tabcolor
How to Measure the Tilt of the Phone in Xy Plane Using Accelerometer in Android
End Call in Android Programmatically
How to Show a Dialog to Confirm That the User Wishes to Exit an Android Activity
Java.Lang.Illegalstateexception: Can Not Perform This Action After Onsaveinstancestate
Convert Content:// Uri to Actual Path in Android 4.4
What Is the Relation Between App_Platform, Android:Minsdkversion and Android:Targetsdkversion