Программно получить уровень API Android на устройстве?
Как узнать, какой уровень API используется моим устройством?
Версия прошивки - 1.6. Означает ли это, что он использует API Level 4?
Ответы
Ответ 1
Уровень API можно получить программно с помощью системной константы (Build.VERSION.SDK_INT
). Например, вы можете запустить какой-то фрагмент кода, для которого требуется более новый API, следующим образом (он будет выполнен, если текущий уровень API устройства не меньше 4)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.DONUT) {
}
Чтобы получить видимую для пользователя версию Android, используйте:
Build.VERSION.RELEASE
Ответ 2
Что вам нужно: 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
Ответ 3
Для API Level> = 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 "Android 10" + "(Android 10.0)";
default: return "";
}
}
Usage
Usage
String android_os = getAndroidVersion(android.os.Build.VERSION.SDK_INT);
Ответ 4
Чтобы получить текущее API вашего устройства:
int MyDeviceAPI = Build.VERSION.SDK_INT;
Ответ 5
Очень просто:
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
Ответ 6
в первых версиях был использован 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
Ответ 7
Вы можете получить информацию об устройстве, как показано ниже.
Log.d(TAG, "RELEASE : " + Build.VERSION.RELEASE);
Log.d(TAG, "SDK : " + Build.VERSION.SDK_INT);
и может получить историю версий версии 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 является N_MR1.