我想知道如何解析AndroidManifest.xml文件,以便通过代码获取应用程序版本号。android:versionName
Answers:
无需为此解析AndroidManifest.xml
文件。
您可以使用以下方法获取此信息:
try
{
String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
}
catch (NameNotFoundException e)
{
Log.e(tag, e.getMessage());
}
在您的onCreate()
方法中使用它。
Http Get
从您的应用程序创建一个请求,然后在该请求的参数中发送该值。在服务器上,您需要处理该请求并比较该应用程序的版本值。如果大于客户端应用程序,则作为响应,向他/她发送一个链接,以下载该应用程序的新版本。
如果这对其他人有帮助,您也可以访问 @string
像其他XML文件一样从AndroidManifest.xml资源。
因此,例如,在AndroidManifest.xml中:
android:versionName="@string/app_versionName"
并在代码中:
string versionName = getResources().getString(R.string.app_versionName);
这样,您就不需要(烦人的imo)try / catch语句。我不确定这是否是经过批准的处理方式,但对我来说有意义。
到目前为止,我用下面的代码片段从该文章,并顺利拿到了版本号和版本名称从AndroidManifest.xml
/* Get android:versionName */
String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
/* Get android:versionCode */
int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
versionName
,BuildConfig.VERSION_NAME
则可以获取您的应用程序。请在此处查看答案:stackoverflow.com/a/28352130/293280