프로그래밍 방식으로 기기의 Android API 수준을 얻습니까? 레벨을 어떻게

내 장치에서 사용중인 API 레벨을 어떻게 알 수 있습니까?

펌웨어 버전은 1.6입니다. API 레벨 4를 사용한다는 의미입니까?



답변

시스템 상수 ( Build.VERSION.SDK_INT)를 통해 프로그래밍 방식으로 API 레벨을 얻을 수 있습니다 . 예를 들어 다음과 같은 방법으로 최신 API가 필요한 일부 코드를 실행할 수 있습니다 (현재 장치의 API 레벨이 4 이상이면 실행 됨).

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.DONUT) {

}

사용자에게 표시되는 Android 버전을 얻으려면 다음을 사용하십시오.

Build.VERSION.RELEASE


답변

필요한 것 : http://developer.android.com/reference/android/os/Build.VERSION_CODES.html

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.1 Oreo MR1
   28                  P                         Android 9 Pie
   29                  Q                         Android 10 Q
  10000                CUR_DEVELOPMENT           Current Development Version


답변

들어 API 레벨> = 4 당신이 사용할 수있는 Build.VERSION.SDK_INT을

private String getAndroidVersion(int sdk) {
    switch (sdk) {
        case 1:  return                          "(Android 1.0)";
        case 2:  return  "Petit Four"          + "(Android 1.1)";
        case 3:  return  "Cupcake"             + "(Android 1.5)";
        case 4:  return  "Donut"               + "(Android 1.6)";
        case 5:  return  "Eclair"              + "(Android 2.0)";
        case 6:  return  "Eclair"              + "(Android 2.0.1)";
        case 7:  return  "Eclair"              + "(Android 2.1)";
        case 8:  return  "Froyo"               + "(Android 2.2)";
        case 9:  return  "Gingerbread"         + "(Android 2.3)";
        case 10: return  "Gingerbread"         + "(Android 2.3.3)";
        case 11: return  "Honeycomb"           + "(Android 3.0)";
        case 12: return  "Honeycomb"           + "(Android 3.1)";
        case 13: return  "Honeycomb"           + "(Android 3.2)";
        case 14: return  "Ice Cream Sandwich"  + "(Android 4.0)";
        case 15: return  "Ice Cream Sandwich"  + "(Android 4.0.3)";
        case 16: return  "Jelly Bean"          + "(Android 4.1)";
        case 17: return  "Jelly Bean"          + "(Android 4.2)";
        case 18: return  "Jelly Bean"          + "(Android 4.3)";
        case 19: return  "KitKat"              + "(Android 4.4)";
        case 20: return  "KitKat Watch"        + "(Android 4.4)";
        case 21: return  "Lollipop"            + "(Android 5.0)";
        case 22: return  "Lollipop"            + "(Android 5.1)";
        case 23: return  "Marshmallow"         + "(Android 6.0)";
        case 24: return  "Nougat"              + "(Android 7.0)";
        case 25: return  "Nougat"              + "(Android 7.1.1)";
        case 26: return  "Oreo"                + "(Android 8.0)";
        case 27: return  "Oreo"                + "(Android 8.1)";
        case 28: return  "Pie"                 + "(Android 9.0)";
        case 29: return  "Q"                   + "(Android 10.0)";
        default: return  "";
    }
}

용법

String android_os = getAndroidVersion(android.os.Build.VERSION.SDK_INT);


답변

장치의 현재 API를 얻으려면 :

int MyDeviceAPI = Build.VERSION.SDK_INT;


답변

아주 쉽게:

String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
int version = Build.VERSION.SDK_INT;
String versionRelease = Build.VERSION.RELEASE;

Log.e("MyActivity", "manufacturer " + manufacturer
            + " \n model " + model
            + " \n version " + version
            + " \n versionRelease " + versionRelease
     );

산출:

E/MyActivity: manufacturer samsung
                model SM-T310
                version 19
                versionRelease 4.4.2


답변

첫 번째 버전에서 사용되었습니다 Build.VERSION.SDK

 String myAPI= Build.VERSION.SDK;

그러나 지금은 더 이상 사용되지 않습니다!.

SDK 이 필드는 API 레벨 4에서 더 이상 사용되지 않습니다. SDK_INT를 사용하여 쉽게 정수로 가져 오십시오.

이제 다음을 사용해야합니다. SDK_INT API 레벨 4에 추가되었습니다.

  int myAPI = Build.VERSION.SDK_INT;

SDK_INT 프레임 워크의 사용자가 볼 수있는 SDK 버전입니다. 가능한 값은 Build.VERSION_CODES에 정의되어 있습니다.

더 많은 정보:

http://developer.android.com/reference/android/os/Build.VERSION.html


답변

다음과 같이 장치의 정보를 얻을 수 있습니다.

Log.d(TAG, "RELEASE : " + Build.VERSION.RELEASE);
Log.d(TAG, "SDK     : " + Build.VERSION.SDK_INT);

OS에서 Android 버전 코드 기록을 가져올 수 있습니다.

for (Field field : Build.VERSION_CODES.class.getDeclaredFields()) {
  field.setAccessible(true);
  Log.d(TAG, field.get(this) + " -> " + field.getName());
}

이것은 출력입니다.

RELEASE : 5.1.1
SDK     : 22

1 -> BASE
2 -> BASE_1_1
3 -> CUPCAKE
10000 -> CUR_DEVELOPMENT
4 -> DONUT
5 -> ECLAIR
6 -> ECLAIR_0_1
7 -> ECLAIR_MR1
8 -> FROYO
9 -> GINGERBREAD
10 -> GINGERBREAD_MR1
11 -> HONEYCOMB
12 -> HONEYCOMB_MR1
13 -> HONEYCOMB_MR2
14 -> ICE_CREAM_SANDWICH
15 -> ICE_CREAM_SANDWICH_MR1
16 -> JELLY_BEAN
17 -> JELLY_BEAN_MR1
18 -> JELLY_BEAN_MR2
19 -> KITKAT
20 -> KITKAT_WATCH
21 -> L
21 -> LOLLIPOP
22 -> LOLLIPOP_MR1

따라서 이들과 공식 버전 목록을 결합 하십시오 .

API VERSION_CODE           VERSION       CODE_NAME
1   BASE                   1             (no code name)
2   BASE_1_1               1.1           (no code name)
3   CUPCAKE                1.5           Cupcake
4   DONUT                  1.6           Donut
5   ECLAIR                 2             Eclair
6   ECLAIR_0_1             2.0.1         Eclair
7   ECLAIR_MR1             2.1           Eclair
8   FROYO                  2.2.x         Froyo
9   GINGERBREAD            2.3 - 2.3.2   Gingerbread
10  GINGERBREAD_MR1        2.3.3 - 2.3.7 Gingerbread
11  HONEYCOMB              3             Honeycomb
12  HONEYCOMB_MR1          3.1           Honeycomb
13  HONEYCOMB_MR2          3.2.x         Honeycomb
14  ICE_CREAM_SANDWICH     4.0.1 - 4.0.2 Ice Cream Sandwich
15  ICE_CREAM_SANDWICH_MR1 4.0.3 - 4.0.4 Ice Cream Sandwich
16  JELLY_BEAN             4.1.x         Jelly Bean
17  JELLY_BEAN_MR1         4.2.x         Jelly Bean
18  JELLY_BEAN_MR2         4.3.x         Jelly Bean
19  KITKAT                 4.4 - 4.4.4   KitKat
20  KITKAT_WATCH           4.4W          KitKat Watch
21  LOLLIPOP               5             Lollipop
22  LOLLIPOP_MR1           5.1           Lollipop
23  M                      6             Marshmallow
24  N                      7             Nougat
25  N_MR1                  7.1           Nougat

, API25의 version_code는 N_MR1입니다.