如何在运行时获取应用版本代码?我找到了许多解决方案来将应用程序版本作为单个整数。但是我需要版本代码的major.minor.patch版本。
答案 0 :(得分:3)
这意味着要获得遵循semantic versioning原则的versionName
。
获取versionName
:
packageManager.getPackageInfo(packageName(), PackageManager.GET_META_DATA)
.versionName; // throws NameNotFoundException
解析versionName
:
// check versionName against ^\d+\.\d+\.\d+$
final String[] versionNames = versionName.split("\\.");
final Integer major = Integer.valueOf(versionNames[0]);
final Integer minor = Integer.valueOf(versionNames[1]);
final Integer patch = Integer.valueOf(versionNames[2]);
确保处理所有可能的错误。
答案 1 :(得分:1)
你通过这种方式得到它
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(
context.getPackageName(), 0);
String version = info.versionName;
int code = info.versionCode;