Search code examples
androidandroid-api-levels

Get Android API level of phone currently running my application


Possible Duplicate:
Programmatically obtain the Android API level of a device?

How do I get the Api level of the phone curently running my application? I am sure its simple but I can not find it as all my searches bring up tons of junk.


Solution

  • 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).