Có ai biết cách tôi có thể kiểm tra phiên bản hệ thống (ví dụ: 1.0
, 2.2
, v.v.) theo cách lập trình không?Tôi làm cách nào để kiểm tra phiên bản hệ thống của Android?
Trả lời
Kiểm tra android.os.Build.VERSION
.
CODENAME
: Các tên mã phát triển hiện nay, hoặc chuỗi "REL" nếu đây là một phát hành xây dựng.INCREMENTAL
: Giá trị nội bộ được sử dụng bởi kiểm soát nguồn cơ bản để thể hiện bản dựng này.RELEASE
: Chuỗi phiên bản hiển thị của người dùng.
bất kỳ ví dụ nào về cách sử dụng? – jonney
Phần khó khăn về điều này là SDK_INT đã được xác định trong API cấp 4 và sử dụng nó không thành công trên 1-3. Có ai biết cách đối xử độc đáo với điều đó không? – Zordid
SDK khả dụng kể từ API 1, cũng INCREMENTAL khả dụng cho tất cả các phiên bản. – yoshi
Bạn có thể tìm phiên bản Android đang xem Build.VERSION
.
Tài liệu khuyên bạn nên kiểm tra Build.VERSION.SDK_INT
so với các giá trị trong Build.VERSION_CODES
.
Điều này là tốt miễn là bạn nhận ra rằng Build.VERSION.SDK_INT
chỉ được giới thiệu trong API cấp 4, tức là Android 1.6 (Donut). Vì vậy, điều này sẽ không ảnh hưởng đến bạn, nhưng nếu bạn muốn ứng dụng của mình chạy trên Android 1.5 trở xuống thì bạn sẽ phải sử dụng phiên bản không được chấp nhận Build.VERSION.SDK
.
Ví dụ làm thế nào để sử dụng nó:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
// only for gingerbread and newer versions
}
Tôi hoàn toàn bỏ qua bất kỳ phiên bản cũ hơn Eclair (7), Android 2.1 và rất sớm, chúng tôi cũng ngừng hỗ trợ cho phiên bản 2.1. Nhưng bạn có thể sử dụng SDK thay vì SDK_INT. – ATom
SDK được triển khai ở cấp API 4. Sử dụng SDK_INT thay thế. – erdomester
Tôi có một câu hỏi: nếu nó đang chạy trên hệ thống cũ hơn GINGERBREAD, thì chúng tôi không thể tải android.os.Build.VERSION_CODES.GINGERBREAD, ứng dụng có bị lỗi không? – HongchaoZhang
Build.VERSION.RELEASE;
Điều đó sẽ cung cấp cho bạn những con số thực tế của phiên bản của bạn; aka 2.3.3 hoặc 2.2. Sự cố khi sử dụng Build.VERSION.SDK_INT là nếu bạn có điện thoại gốc hoặc rom tùy chỉnh, bạn có thể có hệ điều hành không chuẩn (còn gọi là android của tôi đang chạy 2.3.5) và sẽ trả lại giá trị rỗng khi sử dụng Build.VERSION. SDK_INT để Build.VERSION.RELEASE sẽ hoạt động không có vấn đề gì!
Từ SDK: "Chuỗi phiên bản hiển thị của người dùng. Ví dụ:" 1.0 "hoặc" 3.4b5 "." .... "3.4b5" làm cách nào tôi có thể xác định số phiên bản nào? – davs
Toàn bộ câu trả lời 2.3.3 là số phiên bản, hoặc 2.2 hoặc 2.3.5 (tùy chỉnh rom trong trường hợp của tôi). Đó là tổng số phiên bản hệ điều hành. – Falcon165o
Nó trả về cùng một điều Menu >> Cài đặt >> Giới thiệu về điện thoại. Nó nên được dán nhãn Phiên bản Firmware hoặc một cái gì đó để ảnh hưởng đó. – Falcon165o
Tôi không thể nhận xét về câu trả lời, nhưng có một sai lầm lớn trong câu trả lời của Kaushik: SDK_INT không giống như phiên bản hệ thống nhưng thực sự đề cập đến cấp API.
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
//this code will be executed on devices running ICS or later
}
Giá trị Build.VERSION_CODES.ICE_CREAM_SANDWICH
bằng 14. 14 là mức API của Ice Cream Sandwich, trong khi phiên bản hệ thống là 4,0. Vì vậy, nếu bạn viết 4.0, mã của bạn sẽ được thực thi trên tất cả các thiết bị bắt đầu từ Donut, vì 4 là cấp API của Donut (Build.VERSION_CODES.DONUT
bằng 4).
if(Build.VERSION.SDK_INT >= 4.0){
//this code will be executed on devices running on DONUT (NOT ICS) or later
}
Ví dụ này là lý do tại sao sử dụng 'số ma thuật' là một thói quen xấu.
Thực ra, Build.VERSION.SDK_INT là cấp API, không phải là mã phiên bản. Vì vậy, dòng thích hợp sẽ là 'if (Build.VERSION.SDK_INT> = 15) {' – erdomester
Nếu tôi nói với bạn mã phiên bản giống như cấp API và SDK_INT của ICE_CREAM_SANDWICH là 14 không phải 15? @erdomester –
Build.Version là nơi dành cho dữ liệu này. Đây là một đoạn mã để định dạng nó.
public String getAndroidVersion() {
String release = Build.VERSION.RELEASE;
int sdkVersion = Build.VERSION.SDK_INT;
return "Android SDK: " + sdkVersion + " (" + release +")";
}
Có vẻ như đây là "Android SDK: 19 (4.4.4)"
if (Build.VERSION.SDK_INT >= ApiHelper.VERSION_CODES.HONEYCOMB_MR2) {
//do anything you like.
}
Bạn có thể vui lòng giải thích thêm câu trả lời của mình bằng cách thêm một chút mô tả về giải pháp bạn cung cấp không? – abarisone
ApiHelper - không thể phân giải biểu tượng –
sử dụng lớp này
import android.os.Build;
/**
* Created by MOMANI on 2016/04/14.
*/
public class AndroidVersionUtil {
public static int getApiVersion() {
return android.os.Build.VERSION.SDK_INT;
}
public static boolean isApiVersionGraterOrEqual(int thisVersion) {
return android.os.Build.VERSION.SDK_INT >= thisVersion;
}
}
Sử dụng phương pháp này:
public static String getAndroidVersion() {
String versionName = "";
try {
versionName = String.valueOf(Build.VERSION.RELEASE);
} catch (Exception e) {
e.printStackTrace();
}
return versionName;
}
Ví dụ, một tính năng chỉ hoạt động cho api21 lên sau chúng tôi sửa lỗi trong api21 xuống
if(Build.VERSION.SDK_INT >= 21) {
//only api 21 above
}else{
//only api 21 down
}
Để kiểm tra phiên bản thiết bị lớn hơn lớn hơn hoặc bằng Marshmallow, sử dụng mã này.
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
}
cho ckecking người khác chỉ cần thay đổi VERSION_CODES như,
K cho kitkat,
L cho loolipop N cho Nougat và vân vân ...
Hãy nhận biết rằng Build.VERSION.SDK_INT là không đáng tin cậy, nó được đề cập bởi @ Falcon165o và gần đây tôi đã gặp phải điều đó.
Vì vậy, để có được những dữ liệu String (dựa trên Android version list) của Android hiện đang được cài đặt, tôi đã thực hiện một mã như thế này:
//Current Android version data
public static String currentVersion(){
double release=Double.parseDouble(Build.VERSION.RELEASE.replaceAll("(\\d+[.]\\d+)(.*)","$1"));
String codeName="Unsupported";//below Jelly bean OR above Oreo
if(release>=4.1 && release<4.4)codeName="Jelly Bean";
else if(release<5)codeName="Kit Kat";
else if(release<6)codeName="Lollipop";
else if(release<7)codeName="Marshmallow";
else if(release<8)codeName="Nougat";
else if(release<9)codeName="Oreo";
return codeName+" v"+release+", API Level: "+Build.VERSION.SDK_INT;
}
Ví dụ về đầu ra nó sản xuất:
Marshmallow v6. 0, API Cấp: 23
Sự cố mã này tại Double.parseDouble (Build.VERSION.RELEASE) khi bản phát hành chứa nhiều hơn một dấu chấm. Ví dụ: 7.1.1 –
@ MiklósKeresztes Cảm ơn bạn đã bình luận thông tin - Tôi đã sửa câu trả lời của mình. –
- 1. Tôi làm cách nào để kiểm tra phiên bản của phiên bản Liferay?
- 2. Làm cách nào để thuyết phục bộ phận của tôi triển khai hệ thống kiểm soát phiên bản?
- 3. Làm cách nào để kiểm tra phiên bản plugin Gradle Android nào được sử dụng trong dự án của tôi?
- 4. Python - cách kiểm tra tải hệ thống?
- 5. Hệ thống kiểm soát phiên bản cho các tệp lớn?
- 6. Nhiều hệ thống kiểm soát phiên bản đồng thời?
- 7. Làm cách nào để tìm bản sửa đổi phù hợp nhất trong hệ thống kiểm soát phiên bản?
- 8. Làm cách nào để cấp quyền hệ thống cho ứng dụng Android của tôi?
- 9. Làm cách nào để kiểm tra mã phiên bản Android như 1.5 hoặc 1.6
- 10. Làm cách nào để thêm Dịch vụ hệ thống của riêng chúng tôi trong Android Framework?
- 11. Làm cách nào để thực hiện Kiểm tra Tích hợp trên Android với Hệ thống Xây dựng Gradle mới?
- 12. Khung kiểm tra hệ thống trong Java
- 13. Kiểm tra phiên bản ứng dụng của tôi theo lập trình trong thị trường Android
- 14. Cách kiểm tra nhật ký hệ thống trong bash?
- 15. Làm cách nào để kiểm tra phiên bản cụ thể của một tệp trong Git?
- 16. Làm cách nào để kiểm tra phiên bản của python API tại thời gian biên dịch?
- 17. Phiên bản không bị chặn của hệ thống()
- 18. Cách xem phiên bản Eclipse của tôi?
- 19. Cách kiểm tra phiên bản sbt?
- 20. Lỗi kịch bản ANT sau khi cài đặt phiên bản mới hơn của JDK trên hệ thống của tôi
- 21. Cách kiểm tra phiên bản db2
- 22. Hệ thống kiểm soát phiên bản nào được thiết kế tốt nhất để * ngăn chặn * chỉnh sửa đồng thời?
- 23. Cách kiểm tra android: alwaysRetainTaskState
- 24. Làm thế nào để kiểm tra phiên bản của bộ kit Ruby dev được cài đặt trong Windows của tôi?
- 25. Sử dụng hệ thống phun phụ thuộc làm cách nào để đơn vị kiểm tra mã của bạn
- 26. Làm thế nào để kiểm tra hoạt động hệ thống tập tin
- 27. Hệ thống kiểm soát phiên bản có thể mở rộng (nửa triệu tệp)
- 28. Kiểm tra xem phiên bản DirectX nào được cài đặt
- 29. PowerShell - Liệt kê tất cả các phiên bản SQL trên hệ thống của tôi?
- 30. làm thế nào để bạn kiểm tra phiên bản của bạn tăng?
là phím tắt (đoạn mã hoặc mẫu trực tiếp) để thêm séc này vào studio android –