Làm cách nào để biết thiết bị của tôi đang sử dụng cấp API nào?
Phiên bản phần sụn là 1.6. Điều đó có nghĩa là nó sử dụng API Cấp 4?
Làm cách nào để biết thiết bị của tôi đang sử dụng cấp API nào?
Phiên bản phần sụn là 1.6. Điều đó có nghĩa là nó sử dụng API Cấp 4?
Câu trả lời:
Bạn có thể lấy cấp API theo chương trình bằng hằng số hệ thống ( Build.VERSION.SDK_INT). Ví dụ: bạn có thể chạy một số đoạn mã yêu cầu API mới hơn theo cách sau (nó sẽ thực thi nếu cấp API của thiết bị hiện tại ít nhất là 4)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.DONUT) {
}
Để có được phiên bản Android hiển thị cho người dùng, hãy sử dụng:
Build.VERSION.RELEASE
Những gì bạn cần: 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
Đối với Cấp độ API> = 4, bạn có thể sử dụng 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 "";
}
}
Sử dụng
String android_os = getAndroidVersion(android.os.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
trong phiên bản đầu tiên đã được sử dụng Build.VERSION.SDK
String myAPI= Build.VERSION.SDK;
nhưng bây giờ không được dùng nữa !.
SDK Trường này không được dùng nữa trong API cấp 4. Sử dụng SDK_INT để dễ dàng lấy trường này dưới dạng số nguyên.
int myAPI = Build.VERSION.SDK_INT;
SDK_INT Phiên bản SDK hiển thị cho người dùng của khung; các giá trị có thể có của nó được xác định trong Build.VERSION_CODES.
thêm thông tin:
http://developer.android.com/reference/android/os/Build.VERSION.html
Bạn có thể lấy thông tin của thiết bị, như sau.
Log.d(TAG, "RELEASE : " + Build.VERSION.RELEASE);
Log.d(TAG, "SDK : " + Build.VERSION.SDK_INT);
và có thể lấy lịch sử mã phiên bản Android từ OS.
for (Field field : Build.VERSION_CODES.class.getDeclaredFields()) {
field.setAccessible(true);
Log.d(TAG, field.get(this) + " -> " + field.getName());
}
Đây là đầu ra.
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
vì vậy, hãy kết hợp những thứ này và danh sách phiên bản chính thức .
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
Điều này nói rằng, một version_code của API25 là N_MR1.