web-dev-qa-db-ja.com

コードでAndroid:versionNameマニフェスト要素を取得する

コードを通じてアプリケーションのバージョン番号を取得するために、AndroidManifest.xmlファイルを解析する方法を知りたいです。 Android:versionName

68
jennifer

このために_AndroidManifest.xml_ファイルを解析する必要はありません。

以下を使用してこれを取得できます。

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

onCreate()メソッド内でこれを使用します。

144
Vikas Patidar

これが他の人に役立つ場合は、@string AndroidManifest.xmlのリソースは、他のxmlファイルから取得できます。

たとえば、AndroidManifest.xmlの場合:

Android:versionName="@string/app_versionName"

コード内:

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

この方法では、(迷惑な、imo)try/catchステートメントは必要ありません。これが物事の承認された方法であるかどうかはわかりませんが、私には理にかなっています。

35
ForeverWintr

Android Studioを使用している場合、バージョン名はクラスBuildConfigで使用できます。このクラスはコンパイル時に生成されます。

String versionName = BuildConfig.VERSION_NAME;

これは、バージョン名を取得する最もクリーンな方法です。

8
funcoder

これまでのところ、私は 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;
2
Cris