コードを通じてアプリケーションのバージョン番号を取得するために、AndroidManifest.xmlファイルを解析する方法を知りたいです。 Android:versionName
このために_AndroidManifest.xml
_ファイルを解析する必要はありません。
以下を使用してこれを取得できます。
_try
{
String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
}
catch (NameNotFoundException e)
{
Log.e(tag, e.getMessage());
}
_
onCreate()
メソッド内でこれを使用します。
これが他の人に役立つ場合は、@string
AndroidManifest.xmlのリソースは、他のxmlファイルから取得できます。
たとえば、AndroidManifest.xmlの場合:
Android:versionName="@string/app_versionName"
コード内:
string versionName = getResources().getString(R.string.app_versionName);
この方法では、(迷惑な、imo)try/catchステートメントは必要ありません。これが物事の承認された方法であるかどうかはわかりませんが、私には理にかなっています。
Android Studioを使用している場合、バージョン名はクラスBuildConfigで使用できます。このクラスはコンパイル時に生成されます。
String versionName = BuildConfig.VERSION_NAME;
これは、バージョン名を取得する最もクリーンな方法です。
これまでのところ、私は this の記事から以下のコードスニペットを使用し、version codeおよびバージョン名from AndroidManifest.xml
/* Get Android:versionName */
String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
/* Get Android:versionCode */
int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;