2009-10-02 4 views
1

Мне нужно добавить функциональность GPS в существующее приложение Blackberry, которое я написал. Я пишу отдельный класс под названием CurrentLocation и включаю метод установки различных переменных местоположения, которые меня волнуют, используя BlackBerry GPS в сочетании с веб-сервисами обратного геокодирования google. Все работает красиво, то есть до тех пор, пока я не попытаюсь создать экземпляр нового класса в моем основном приложении.Blackberry JDE GPS getLocation() LocationException

Независимо от того, что я делаю, я получаю исключение LocationException! .getLocation() не работает!

Это действительно смущает меня, потому что, если я создаю экземпляр класса в тестовом приложении hello world, он работает отлично.

Существуют ли ограничения для того, где вы можете создавать классы? Я не сталкивался с предыдущими классами, которые я написал. В этом случае я создаю свой текущий класс CurrentLocation в слушателе (так что пользователь делает только длинные gps и веб-вызовы, когда захочет). Я тоже пытался создать экземпляр на экранах. Я пробовал просто потрошить класс и использовать вызов метода, но это тоже не работает.

Есть ли что-то, что я здесь полностью отсутствует?

http://pastie.org/639545

Там есть ссылка на класс я делаю,

И вот слушатель я "м пытается создать экземпляр из. Я в потоке событий, потому что я думал, что это может помочь (но я получаю такое же исключение или нет это я).

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

      }); 

     } 
    }; 

Что я здесь отсутствует?

+1

Привет! вы считаете, что принимаете свой собственный ответ? –

+0

Спасибо! Я полностью забыл -.- ;; – Jenny

ответ

2

Хорошо, я получил его. по-видимому, вы не можете позвонить г etLocation() в eventThread (не просто invokeLater, но и любой прослушиватель). Итак, теперь я получаю координаты в потоке вне события и беспокоюсь о Google отдельно.