4

没有 getPackageManager 是否有可能获取 App 的 versionCode?我的问题是,我想要一个没有 Activity 的公共配置类,所以 getPackageManager() 不起作用。任何的想法?

我目前的代码:

PackageInfo pinfo;
try {
    pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
} catch (NameNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    pinfo = null;
}

appVersion = pinfo.versionCode;
4

3 回答 3

2

您必须将对公共类的引用Context(最好使用getApplicationContext(),以防止意外的内存泄漏)传递给公共Configuration类。没有其他方法可以检索versionCode您的应用程序。你必须使用PackageManager.

于 2012-07-03T12:32:17.723 回答
1

在非活动类的构造函数中获取一个Context实例,并使用它来调用所有此类方法。

像这样的东西:

public class NonActivityClass implements SensorListener{
Context mContext;
public NonActivtiyClass(Context context) {
this.mContext = context;
}
//Rest of your code
}

然后执行此操作以在您的 Activtiy 中创建该类的对象onCreate()

NonActivityClass nac = new NonActivityClass(this);
于 2012-07-03T12:32:26.593 回答
1

使用以下代码获取当前应用的应用版本代码:

public int getAppVersionCode() {
    return BuildConfig.VERSION_CODE;
}
于 2017-09-26T12:38:59.667 回答