2010-09-03 10 views
50

Il AndroidManifest.xml contiene il nome della versione dell'applicazione, qualcosa comeutente valore versionName di AndroidManifest.xml nel codice

android:versionName="1.0" 

Ora la domanda - è in qualche modo possibile accedere a questo nome di versione nel codice sorgente, in modo da che posso visualizzarlo per esempio in un Dialog?

risposta

116

Se si utilizza ADT ed Eclipse:

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

Se si utilizza Gradle, c'è un modo più semplice, dal momento che mette i dati in BuildConfig per voi:

String version = BuildConfig.VERSION_NAME; 
+23

Sono troppi "getPackage" per una singola riga di codice ... O_O – Cephron

+4

Grande! Ma c'è un modo per ottenere il valore da un file xml (specialmente per usarlo come 'android: summary' di un nodo' Preference')? –

37

risposta di Konstantin (sopra) è corretto, ma per quello che vale ho trovato che ho ottenuto un errore del compilatore se non ho catturato un NameNotFoundException, come segue:

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