2009-10-02 3 views
1

필자가 작성한 기존 Blackberry 응용 프로그램에 GPS 기능을 추가해야합니다. CurrentLocation이라는 독립 실행 형 클래스를 작성하고 Google의 역 지오 코딩 웹 서비스와 함께 블랙 베리 GPS를 사용하여 신경을 쓰는 다양한 위치 변수를 설정하는 메소드를 포함합니다. 모든 것이 주 애플리케이션에서 새 클래스를 인스턴스화 할 때까지 아름답게 작동합니다.Blackberry JDE GPS getLocation() LocationException

내가 무엇을해도 LocationException이 발생합니다! .getLocation()이 작동하지 않습니다!

필자가 테스트 hello world 앱에서 클래스를 인스턴스화하면 정말 잘 작동하므로 혼란 스럽다.

클래스를 인스턴스화 할 수있는 제한이 있습니까? 필자가 이전에 작성한 수업에서 어떤 문제도 발생하지 않았습니다. 이 경우에는 Listener에서 CurrentLocation 클래스를 인스턴스화합니다. 따라서 사용자는 원하는 경우에만 긴 GPS와 웹 호출을 수행합니다. 나는 스크린에서도 그것을 인스턴스화하려고 시도했다. 방금 클래스를 소용돌이 시도하고 메서드 호출을 사용하여,하지만 그 중 하나를 작동하지 않습니다.

내가 여기에서 빠진 것이 있습니까? 내가 도움이 될 생각했기 때문에 내가 만들고있어 수업에 대한 링크가 있습니다

http://pastie.org/639545

,

그리고 여기에 내가 "m로부터 인스턴스화하려고 청취자입니다. 나는 (이벤트 스레드에있어 하지만 난)이 작업을 수행할지 여부 같은 예외를 얻을.

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

좋아, 나는 그것을 얻었다. 분명히 당신이 호출 할 수 없습니다 g eventThread (invokeLater뿐 아니라 모든 리스너)의 etLocation(). 이제는 이벤트 외부의 스레드에서 좌표를 가져오고 별도로 Google에 대해 걱정하고 있습니다.

관련 문제