在代码中获取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;