web-dev-qa-db-fra.com

Obtenir Android: élément manifeste versionName dans le code

Je veux savoir comment analyser le fichier AndroidManifest.xml afin d'obtenir le numéro de version de l'application via le code. Android: versionName

68
jennifer

Pas besoin d'analyser le fichier AndroidManifest.xml Pour cela.

Vous pouvez l'obtenir en utilisant:

try
{
    String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
}
catch (NameNotFoundException e)
{
    Log.e(tag, e.getMessage());
}

Utilisez-le dans votre méthode onCreate().

144
Vikas Patidar

Dans le cas où cela serait utile à quelqu'un d'autre, vous pouvez également accéder à @string les ressources d'AndroidManifest.xml comme vous le pouvez à partir d'autres fichiers xml.

Ainsi, par exemple, dans AndroidManifest.xml:

Android:versionName="@string/app_versionName"

et en code:

string versionName = getResources().getString(R.string.app_versionName);

De cette façon, vous n'avez pas besoin de l'instruction try/catch (ennuyeuse, imo). Je ne sais pas si c'est une façon approuvée de faire les choses, mais cela a du sens pour moi.

35
ForeverWintr

Si vous utilisez le Android Studio, le nom de la version est disponible dans la classe BuildConfig. Cette classe est générée au moment de la compilation:

String versionName = BuildConfig.VERSION_NAME;

C'est le moyen le plus propre de récupérer le nom de la version.

8
funcoder

Jusqu'à présent, j'ai utilisé l'extrait de code ci-dessous de this article et obtenu avec succès le code de version et nom de la version de AndroidManifest.xml

/* Get Android:versionName */
String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;

/* Get Android:versionCode */
int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
2
Cris