有人能告诉我如何在Android中获取应用程序版本吗?
有人能告诉我如何在Android中获取应用程序版本吗?
这个页面上有一些关于如何从Java中获取应用程序版本和其他包信息的技巧:
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(
context.getPackageName(), 0);
String version = info.versionName;
getPackageInfo
会抛出异常(一些应用程序没有指定版本?),以及在这种情况下什么是有用的行为。编辑也没有澄清这一点,所以我拒绝了它。 - Merlyn Morgan-Graham我正在使用Android Studio,我意识到可以使用一行代码来实现这个。
/*version name*/
BuildConfig.VERSION_NAME
/*version code*/
BuildConfig.VERSION_CODE
修改后:
如果您使用其他 Android 库,请确保从您的应用程序包中导入 BuildConfig。这类似于自动生成的 R 类来标识资源。
public int getVersion(Context context) {
try {
PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_META_DATA);
return pInfo.versionCode;
} catch (NameNotFoundException e) {
return 0;
}
}
}
在这个链接上有更多相关信息。
获取应用程序信息:
PackageManager manager = this.getPackageManager();
try {
PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
String packageName = info.packageName;
int versionCode = info.versionCode;
String versionName = info.versionName;
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
}
我找到的最简单、最好的答案是只需导入您的BuildConfig
import your.package.BuildConfig;
那就这样吧。
String verName = BuildConfig.VERSION_NAME;
int verCode = BuildConfig.VERSION_CODE;
PackageInfo packageInfo = this.getPackageManager().getPackageInfo(getPackageName(), 0);
int versionCode = packageInfo.versionCode;
String version = packageInfo.versionName;
int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;
defaultConfig {
applicationId "com.sing.smart"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.1.0"
}
versionCode
versionCode是一个整数值,用于轻松区分应用程序版本。
当应用程序开发者在Android市场发布更新时,必须增加此值,以便确定用户是否使用旧版应用程序,并提供更新。
versionName
versionName是一个包含常规“发布版本”的字符串,就像其他桌面应用程序中看到的“1.4.5”或“3.7”一样。
versionName只是一个“人类可读”的版本代码。
PackageInfo pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
int versionNumber = pinfo.versionCode;
String versionName = pinfo.versionName;
classpath 'com.android.tools.build:gradle:8.0.0'
首先,在 build.gradle(app 模块)中的 android 块中添加以下代码,并重新构建项目
android {
buildFeatures {
buildConfig = true
}
}
然后,您可以从您的活动或片段以编程方式获取版本代码和版本名称,如下所示:
int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;
int versionCode = BuildConfig.VERSION_CODE;(版本代码)
String versionName = BuildConfig.VERSION_NAME;(版本名称)
如果您需要用于脚本编写(非程序编写),可以使用此命令:
adb shell "pm dump com.example.your.package.name | grep \"versionCode\"" | awk '{print $1}' | awk -F '=' '{print $2}'