我想知道如何通过代码解析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()
方法内使用此代码。
如果对其他人有帮助的话,你也可以像在其他xml文件中一样从AndroidManifest.xml中访问@string
资源。
例如,在AndroidManifest.xml中:
android:versionName="@string/app_versionName"
在代码中:
string versionName = getResources().getString(R.string.app_versionName);
这种方法不需要(我认为很烦人的)try/catch语句。我不确定这是否是一种被批准的做法,但对我来说很有意义。
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;
BuildConfig.VERSION_NAME
获取应用程序的versionName
。请参见此处的答案:https://dev59.com/C2445IYBdhLWcg3w9Ows#28352130 - Joshua Pinter