Android 平台如何取得程序自身的版本?

Android 平台如何取得程序自身的版本?,第1张

<string name="version_name"1.0</string,然后再在两个地方引用这个字符串 R.string.version_name 或 @string/version_name。当然,About UI 部分可以根据情况直接写在 layout xml (后者)或代码中(前者),但是 AndroidManifest.xml 只能使用后者。这样版本就只有一个定义,在 strings.xml 中,以后升级时修改这一个地方就可以了。这样改完代码后,编译,运行,一切正常,我感到很欣慰。然而,很快问题就出现了:当我上传这个程序到 Android Market 上时,系统提示 Version Name 无效!看来 Google 的 Android思考问题要灵活,既然 AndroidManifest.xml 中不能引用其他 xml 中的资源,那么就让版本号定义在它那里,其他用到版本号的地方都想办法取出来不就可以了!!问题化归为:如何在运行时取到程序自身的版本?(之所以这里强调运行时是因为我感觉 AndroidManisfest.xml 中的东西是无法通过类似 @string/abd 形式来引用的。如果你知道如何引用,请告诉我,谢谢!)。经过查找文档和 Google,最终找到答案:

在检测应用程序是否需要升级时,首先应该获取其版本号与服务器端进行比较进行判断是否升级

Android有两个版本号标识,分别为:versionCode,(整数值代表),versionName(字符串代表)

具体方法如下:

public static int getVerCode(Context context) {

int verCode = -1try {verCode = context.getPackageManager().getPackageInfo(

包名, 0).versionCode

} catch (NameNotFoundException e) {

Log.e(msg, e.getMessage())}return verCode}

public static String getVerName(Context context) {

String verName = try {verName = context.getPackageManager().getPackageInfo(

包名, 0).versionName

//获取版本名

publicstatic String getAppVersionName(Context context) {

String versionName = ""

try {

// ---get the package info---

PackageManager pm = context.getPackageManager()

PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0)

versionName = pi.versionName

versioncode = pi.versionCode

if (versionName == null || versionName.length() <= 0) {

return""

}

} catch (Exception e) {

Log.e("VersionInfo", "Exception", e)

}

return versionName

}

2.--------------------------------------------------------------------------

获取当前应用的版本号:

private String getVersionName() throws Exception

{

// 获取packagemanager的实例

PackageManager packageManager = getPackageManager()

// getPackageName()是你当前类的包名,0代表是获取版本信息

PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0)

String version = packInfo.versionName

return version

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11182996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存