关于android:我如何获得我的应用程序版本

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;
    }
}