2010-09-03 3 views
50

Die AndroidManifest.xml enthält die Version Namen der Anwendung, so etwas wieBenutzerversion Wert von AndroidManifest.xml in Code

android:versionName="1.0" 

nun die Frage - ist es irgendwie möglich, diese Versionsnamen im Quellcode zugreifen zu können, so dass ich es zum Beispiel in einem Über Dialog anzeigen kann?

Antwort

116

Wenn verwenden Sie ADT und Eclipse:

String version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; 

Wenn Sie Gradle verwenden, gibt es einen einfacheren Weg, da sie die Daten in BuildConfig für Sie setzt:

String version = BuildConfig.VERSION_NAME; 
+23

Das sind zu viele "getPackage" s für eine einzige Zeile Code ... O_O – Cephron

+4

Großartig! Aber gibt es eine Möglichkeit, den Wert aus einer XML-Datei zu erhalten (vor allem, um sie als 'android: summary' eines 'Preference'-Knotens zu verwenden)? –

37

Konstantin Antwort (oben) ist richtig, aber für das, was es wert ist, fand ich, dass ich einen Compiler-Fehler bekam, wenn ich keine NameNotFoundException fangen haben, wie folgt:

import android.content.pm.PackageManager.NameNotFoundException; 
try { 
    String version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; 
} catch (NameNotFoundException e) { 
    Log.e("tag", e.getMessage()); 
}