android 获取版本name,在代码中获取android:versionName清单元素

我想知道如何解析AndroidManifest.xml文件,以便通过代码获取应用程序版本号。安卓的versionName

如果您使用的是Gradle,则可以使用BuildConfig.VERSION_NAME获取应用程序的versionName。 请参阅此处的答案:stackoverflow.com/a/28352130/293280

无需为此解析AndroidManifest.xml文件。

你可以通过使用:

try

{

String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;

}

catch (NameNotFoundException e)

{

Log.e(tag, e.getMessage());

}

在onCreate()方法中使用它。

我需要将我的应用程序android:versionName与下载中的应用程序进行比较。我的应用程序不在Android市场..我需要将我的手机中的versionName与网站上的版本进行比较以获取新版本并显示更新它的警报..如何获取应用程序的新版本号是否可行在网站上

@jebbifer:只需从您的应用程序创建一个Http Get请求,并将此值发送到此请求的参数中。在您的服务器上,您需要处理该请求并比较该应用程序版本值。如果大于客户端应用程序,则响应时向他/她发送一个链接以下载该应用程序的新版本。

很简单++

如果这对其他人有帮助,您也可以从其他xml文件中访问AndroidManifest.xml中的@string资源。

例如,在AndroidManifest.xml中:

android:versionName="@string/app_versionName"

并在代码中:

string versionName = getResources().getString(R.string.app_versionName);

这样你就不需要(恼人的,imo)try / catch语句。 我不确定这是否是一种经过批准的做事方式,但这对我来说很有意义。

好的解决方案

我们可以获得清单内容吗?

酷解!而不是直接从清单编辑字符串,使用字符串值并编辑它,您的代码不会改变!我喜欢 ! +2:P

注意这个lint警告消息:android:versionName不能是资源url,它必须是文字字符串

耻辱。最近必须出现这条皮棉信息;我不记得在我做这件事的时候回来了。

如果您使用的是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;

请扩大您的答案,因为仅限链接的答案在SO上不合适。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值