当前位置: 代码迷 >> Android >> 想要在代码里获得apk版本号.如何样脱离Activity, Service或者BroadcastReceiver等取得PackageManager
  详细解决方案

想要在代码里获得apk版本号.如何样脱离Activity, Service或者BroadcastReceiver等取得PackageManager

热度:26   发布时间:2016-05-01 10:12:21.0
想要在代码里获得apk版本号..怎么样脱离Activity, Service或者BroadcastReceiver等取得PackageManager
我想要在android代码里获得apk版本号
代码如下:

try {
PackageManager pm = getPackageManager();
PackageInfo info = pm.getPackageInfo("com.example.test", 0);
int version = info.versionCode;
}
catch (NameNotFoundException e) {
}


问题是getPackageManager()这个函数是由Context提供的.

而我以上代码是纯java类TransferProtocol里面的,它不知道任何的Activity, Service或者BroadcastReceiver...
也就是说调用不到Context.getPackageManager()这个函数...

我又不想因为要取得PackageManager而将纯java类TransferProtocol跟Activity, Service或者BroadcastReceiver偶合在一起...

------解决方案--------------------
纯java的你就底层的jni之类的吧  这个是android上层的使用方法 ,你想跳开,就只能使用封装之前的方法了

或者解析manifest等等神马的   (我没搞过  不能搞定问题别介)
------解决方案--------------------
没那么复杂的,直接传个context进去就可以了。
------解决方案--------------------
或者可以在自己的Application类里写一个方法,然后调用这个方法
MyApp app = (MyApp) getApplication();
app.getVersion();

...
------解决方案--------------------
3楼正解。。
------解决方案--------------------
直接传递个context即可也有类似getApplicationContext()的方法
  相关解决方案