有谁能告诉我如何在Android中获取应用程序版本?
答案 0 :(得分:135)
这个page有一个关于如何从java中做到的提示:
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(
context.getPackageName(), 0);
String version = info.versionName;
另外,this link has official information on how to properly set up your application versioning。
答案 1 :(得分:68)
我正在使用Android Studio,我意识到我可以使用一行代码来实现这一点。
/*version name*/
BuildConfig.VERSION_NAME
/*version code*/
BuildConfig.VERSION_CODE
<强>编辑:强>
如果您使用的是其他Android库,请确保从应用程序包中导入 BuildConfig 。这类似于自动生成的用于识别资源的R类。
答案 2 :(得分:12)
获取申请信息:
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
}
答案 3 :(得分:12)
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;
}
}
}
有关此link
的更多信息答案 4 :(得分:5)
我发现最简单,最好的答案就是导入BuildConfig
import your.package.BuildConfig;
然后只是
String verName = BuildConfig.VERSION_NAME;
int verCode = BuildConfig.VERSION_CODE;
答案 5 :(得分:2)
在你(模块:app)gradle中定义版本名称和版本代码
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;
答案 6 :(得分:1)
如果您需要它用于脚本编写(不用于编程),您可以使用此命令:
adb shell "pm dump com.example.your.package.name | grep \"versionCode\"" | awk '{print $1}' | awk -F '=' '{print $2}'
答案 7 :(得分:1)
int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;
答案 8 :(得分:1)
如果你正在使用eclipse试试这个:
PackageInfo packageInfo = this.getPackageManager().getPackageInfo(getPackageName(), 0);
String version = packageInfo.versionName;
在Android Studio中:
int versionCode = BuildConfig.VERSION_CODE;
确保您在模块级build.gradle文件
中有豪宅版本代码答案 9 :(得分:0)
在Nativescript(使用Typescript)上,可以这样做:
import {Observable} from 'data/observable';
import * as applicationModule from 'application'
export class AboutViewModel extends Observable {
public version: string;
constructor() {
super();
let manager = applicationModule.android.context.getPackageManager();
let info = manager.getPackageInfo(applicationModule.android.context.getPackageName(), 0);
this.version = info.versionName;
}
}
答案 10 :(得分:0)
在科特林:
fun getAppVersionName(context: Context): String {
var appVersionName = ""
try {
appVersionName =
context.packageManager.getPackageInfo(context.packageName, 0).versionName
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
}
return appVersionName
}
fun getAppVersionCode(context: Context): Long {
var appVersionCode = 0L
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
appVersionCode =
context.packageManager.getPackageInfo(context.packageName, 0).longVersionCode
}
else{
appVersionCode =
context.packageManager.getPackageInfo(context.packageName, 0).versionCode.toLong()
}
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
}
return appVersionCode
}