在代码中获取android:versionName清单元素
我想知道如何parsingAndroidManifest.xml文件,以通过代码获取应用程序版本号。 安卓的versionName
不需要为此parsingAndroidManifest.xml
文件。
你可以通过使用:
try { String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName; } catch (NameNotFoundException e) { Log.e(tag, e.getMessage()); }
在你的onCreate()
方法中使用这个。
如果这对其他人有帮助,您也可以像从其他xml文件那样访问AndroidManifest.xml中的@string
资源。
例如,在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;
这是检索版本名称的最简单的方法。
到目前为止,我使用了本文中的下面的代码片段,并从AndroidManifest.xml
成功获取了版本代码和版本名称
/* Get android:versionName */ String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; /* Get android:versionCode */ int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;