我需要将GPS功能添加到我编写的现有Blackberry应用程序中。我写了一个名为CurrentLocation的独立类,并包含一个方法来设置我关心的各种位置变量,将黑莓GPS与谷歌的反向地理编码网络服务结合使用。一切都工作得很漂亮,也就是说,直到我尝试在我的主应用程序中实例化我的新课程。
无论我做什么,我都会得到一个LocationException! .getLocation()不起作用!
这让我很困惑,因为如果我在测试hello world app中实例化我的类,它就可以了。
您可以在何处实例化类?我以前写过的课程没有遇到任何问题。在这种情况下,我在侦听器中实例化我的CurrentLocation类(因此用户只在需要时进行冗长的gps和Web调用)。我也试过在屏幕中实例化它。我已经尝试过去强制类并使用方法调用,但这也不起作用。
我在这里完全没有找到什么东西吗?
我正在制作的课程链接
这是我试图实例化的监听器。我在一个事件线程中因为我认为它可能会有所帮助(但无论我是否这样做,我都会得到相同的异常)。
FieldChangeListener listenerGPS = new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
CurrentLocation loc = new CurrentLocation();
if (loc != null){
country = loc.getCountry();
city = loc.getCity();
state = loc.getState();
road = loc.getRoad();
zip = loc.getZip();
}
}
});
}
};
我在这里缺少什么?
答案 0 :(得分:2)
好的,我明白了。显然你不能在eventThread中调用getLocation()(不仅仅是invokeLater,而是任何监听器)。所以现在我正在做的是在事件之外的线程中获取坐标,并分别担心谷歌。