588 Stimmen

Wie kann ich die Systemversion von Android überprüfen?

Weiß jemand, wie ich die Systemversion überprüfen kann (z. B. 1.0 , 2.2 , etc.) programmatisch?

50voto

Dave Webb Punkte 184809

Sie können die Android-Version unter folgender Adresse herausfinden Build.VERSION .

In der Dokumentation wird empfohlen, Folgendes zu überprüfen Build.VERSION.SDK_INT gegen die Werte in Build.VERSION_CODES .

Das ist in Ordnung, solange Sie wissen, dass Build.VERSION.SDK_INT wurde erst mit API Level 4 eingeführt, also mit Android 1.6 (Donut). Dies hat also keine Auswirkungen auf Sie, aber wenn Sie möchten, dass Ihre App auf Android 1.5 oder früher läuft, müssen Sie das veraltete Build.VERSION.SDK stattdessen.

37voto

Michał Kisiel Punkte 1030

Ich kann mich nicht zu den Antworten äußern, aber in Kaushiks Antwort steckt ein großer Fehler: SDK_INT ist nicht dasselbe wie die Systemversion, sondern bezieht sich tatsächlich auf die API-Stufe.

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
    //this code will be executed on devices running ICS or later
}

Der Wert Build.VERSION_CODES.ICE_CREAM_SANDWICH entspricht 14. 14 ist die API-Stufe von Ice Cream Sandwich, während die Systemversion 4.0 ist. Wenn Sie also 4.0 schreiben, wird Ihr Code auf allen Geräten ab Donut ausgeführt, da 4 die API-Stufe von Donut ist ( Build.VERSION_CODES.DONUT gleicht 4).

if(Build.VERSION.SDK_INT >= 4.0){
    //this code will be executed on devices running on DONUT (NOT ICS) or later
}

Dieses Beispiel ist ein Grund, warum die Verwendung der "magischen Zahl" eine schlechte Angewohnheit ist.

29voto

Nikita Kurtin Punkte 5299

Beachten Sie, dass Build.VERSION.SDK_INT ist nicht zuverlässig, das hat @Falcon165o erwähnt, und vor kurzem bin ich auch auf dieses Problem gestoßen.

Um also die String-Daten zu erhalten (basierend auf Liste der Android-Versionen ) des aktuell installierten Android, habe ich einen Code wie diesen erstellt:

Java

//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
    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";
    else if(release < 10)  codeName="Pie";
    else if(release >= 10) codeName="Android "+((int)release);//since API 29 no more candy code names
    return codeName+" v"+release+", API Level: "+Build.VERSION.SDK_INT;
}

Kotlin

fun currentVersion(): String {
    val release = java.lang.Double.parseDouble(java.lang.String(Build.VERSION.RELEASE).replaceAll("(\\d+[.]\\d+)(.*)", "$1"))
    var codeName = "Unsupported"//below Jelly Bean
    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"
    else if (release < 10)  codeName = "Pie"
    else if (release >= 10) codeName = "Android "+(release.toInt())//since API 29 no more candy code names
    return codeName + " v" + release + ", API Level: " + Build.VERSION.SDK_INT
}

Beispiel für eine von ihm erzeugte Ausgabe:

Marshmallow v6.0, API-Stufe: 23

27voto

HOSHYAR Ahmadpour Punkte 289

Zum Beispiel, eine Funktion funktioniert nur für api21 up die folgenden beheben wir Fehler in api21 down

    if(Build.VERSION.SDK_INT >= 21) {
    //only api 21 above
    }else{
   //only api 21 down
    }

7voto

Kunkun Liu Punkte 79
if (Build.VERSION.SDK_INT >= ApiHelper.VERSION_CODES.HONEYCOMB_MR2) {
//do anything you  like.
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X