我想要在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偶合在一起...
代码如下: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偶合在一起...
解决方案 »
- 有关Android.mk文件的一些问题
- android流媒体
- 求救(十万火急):ubuntu10.10(32位)编译android源码问题
- 请问URI问题??
- 我用多普达s1的手机内置IE浏览wap网站的时候,提示“该页包含错误,无法显示”
- android 天气预报 wifi无法取到数据 模拟器可以
- Android UDP连接和接收数据
- 安卓开发,如何在A程序中启动B程序的Service ??
- 如何实现音乐列表在DLNA设备上播放
- 为什么adb shell screencap -p 直接输出png无法打开?
- 【代码】Android如何实现简单音乐播放器的代码
- 求教如何实现类似 windows 上置顶的非模态对话框效果
MyApp app = (MyApp) getApplication();
app.getVersion();...
TransferManager.java
------------------------------------------
这2个是用来解析socket传输的协议的,
协议的在pc端也需要相应去解析,因而在我的pc端有下面的文件
TransferProtocol.h
TransferProtocol.cpp
TransferManager.h
TransferManager.cpp
------------------------------------------所以我要求协议接口本身是跟平台无关的,即//////////////java file
public class TransLine_Checkversion {
public bool decode() {
//这里是java平台的check version通信协议处理
//函数处理实现的地方,充许调用具体平台相关的东西,比如说
try {
PackageManager pm = getPackageManager();
PackageInfo info = pm.getPackageInfo("com.example.test", 0);
int version = info.versionCode;
}
catch (NameNotFoundException e) {
} //但是不能因为要得到PackageManager这个东西,因将函数本身改为
//public bool decode(Context context) {}
//这样就将协议接口本身跟平台藕合在一起了..
那么换到pc平台下c/c++的接口怎么写呢?
//bool decode(Context* context) {} //c/c++没有用到Context*指针啊
//或者
//bool decode() {} //很明显,接口跟android平台下的不一致了啊...
}
}
//
public class TransLine_Checkversion {
public bool decode() {
------------------------------------//////////////c/c++ file
class TransLine_Checkversion {
public:
bool decode() {
//这里在pc平台下处理check version通信协议....
}
};//TransferProtocol.java
TransferProtocol
TransferManager这2套东西,实现可以调用具体平台的东西.
但是类或者函数结构本身不能平任何平台相关..
甚至类或者函数的参数,返回值等等.个数,类型都必须是一致的.
//////////////java file
public class TransLine_Checkversion {
public bool decode() {}
//... ...
}//////////////c/c++ file
class TransLine_Checkversion {
public:
bool decode() {}
//... ...
};
2者必须一致....
(当然private, protected的函数或变量可以不同)