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
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()
.
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.
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.
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;