Get android:versionName manifest element in code
我想知道如何解析AndroidManifest.xml文件,以便通过代码获取应用程序版本号。安卓的versionName
无需为此解析
你可以通过使用:
1 2 3 4 5 6 7 8 | try { String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName; } catch (NameNotFoundException e) { Log.e(tag, e.getMessage()); } |
在
如果这对其他人有帮助,您也可以从其他xml文件中访问AndroidManifest.xml中的
例如,在AndroidManifest.xml中:
1 | android:versionName="@string/app_versionName" |
并在代码中:
1 | string versionName = getResources().getString(R.string.app_versionName); |
这样你就不需要(恼人的,imo)try / catch语句。 我不确定这是否是一种经过批准的做事方式,但这对我来说很有意义。
如果您使用的是Android Studio,则BuildConfig类中提供了版本名称。 这个类在编译时生成:
1 | String versionName = BuildConfig.VERSION_NAME; |
这是检索版本名称最干净的方法。
到目前为止,我使用了本文中的以下代码片段,并成功从
1 2 3 4 5 | /* Get android:versionName */ String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; /* Get android:versionCode */ int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; |