How do I get my application Version
谁能告诉我如何在Android中获取应用程序版本?
这个页面提供了有关如何从java执行此操作的提示:
1 2 3 4 | PackageManager manager = context.getPackageManager(); PackageInfo info = manager.getPackageInfo( context.getPackageName(), 0); String version = info.versionName; |
此外,此链接还提供有关如何正确设置应用程序版本控制的官方信息。
我正在使用Android Studio,我意识到我可以使用一行代码来实现这一点。
1 2 3 4 5 | /*version name*/ BuildConfig.VERSION_NAME /*version code*/ BuildConfig.VERSION_CODE |
编辑:
如果您使用的是其他Android库,请确保从应用程序包中导入BuildConfig。这与用于标识资源的自动生成的R类类似。
1 2 3 4 5 6 7 8 9 | 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; } } } |
有关此链接的更多信息
要获取应用程序信息:
1 2 3 4 5 6 7 8 9 | 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
1 | import your.package.BuildConfig; |
然后就是
1 2 | String verName = BuildConfig.VERSION_NAME; int verCode = BuildConfig.VERSION_CODE; |
在您(模块:应用程序)gradle定义版本名称和版本代码
1 2 3 4 5 6 7 | defaultConfig { applicationId"com.sing.smart" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName"1.1.0" } |
的versionCode
versionCode是整数值,用于轻松区分应用程序版本。
应用程序开发人员在Android Market中发布应用程序更新时必须增加此值,以便确定用户是否使用旧版本的应用程序,并提供更新。
的versionName
versionName是一个包含常规"发布版本"的字符串,如其他桌面应用程序中所示,例如"1.4.5"或"3.7"。
versionName只是一个"人类可读"的版本代码。
1 2 3 | PackageInfo pinfo = getPackageManager().getPackageInfo(getPackageName(), 0); int versionNumber = pinfo.versionCode; String versionName = pinfo.versionName; |
如果你正在使用eclipse试试这个:
1 2 | PackageInfo packageInfo = this.getPackageManager().getPackageInfo(getPackageName(), 0); String version = packageInfo.versionName; |
在Android Studio中:
1 | int versionCode = BuildConfig.VERSION_CODE; |
确保在模块级build.gradle文件中有豪宅版本代码
int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;
如果您需要它用于脚本编写(而不是编程),您可以使用此命令:
1 | adb shell"pm dump com.example.your.package.name | grep "versionCode"" | awk '{print $1}' | awk -F '=' '{print $2}' |
在Nativescript(使用Typescript)上,可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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; } } |