2012-07-17 81 views
0

我在BlackBerry模擬器9800調用startLocationUpdate()座標獲得的座標我在哪裏(緯度,經度),即阿聯酋。但是我得到了加拿大的座標。這是什麼意思? GPS不工作?我試着檢查模擬器的設置,但沒有看到「打開GPS」的選項。請指導如何獲取我的當前位置。獲取通過GPS黑莓

private boolean startLocationUpdate() 
    { 
     boolean retval = false; 

      try 
      { 
      locationProvider = LocationProvider.getInstance(null); 

      if (locationProvider == null) 
      { 

      Runnable showGpsUnsupportedDialog = new Runnable() 
      { 
       public void run() 
       { 

       Dialog.alert("GPS is not supported on this platform, exiting..."); 
       //System.exit(1); 
       } 
      }; 

      UiApplication.getUiApplication().invokeAndWait(showGpsUnsupportedDialog); // Ask event-dispatcher thread to display dialog ASAP. 
      } 
      else 
      { 

      locationProvider.setLocationListener(new LocationListenerImpl(), interval, -1, -1); 

      retval = true; 
      } 
      } 
      catch (LocationException le) 
      { 
       System.err.println("Failed to instantiate the LocationProvider object, exiting..."); 
       System.err.println(le); 
       System.exit(0); 
      } 
      return retval; 
      } 

      private class LocationListenerImpl implements LocationListener 
      { 

      public void locationUpdated(LocationProvider provider, Location location) 
      { 
        if(location.isValid()) 
        { 
         longitude = location.getQualifiedCoordinates().getLongitude(); 
         latitude = location.getQualifiedCoordinates().getLatitude(); 

         updateLocationScreen(latitude, longitude);    

        } 
      } 

      public void providerStateChanged(LocationProvider provider, int newState) 
      { 
      } 
     } 

     private void updateLocationScreen(final double latitude, final double longitude) 
      { 
        UiApplication.getUiApplication().invokeAndWait(new Runnable() 
        { 
        public void run() 
        { 
        lat = latitude; 
        longt = longitude; 


        RichTextField txt=new RichTextField(); 
        txt.setText("Long=="+longt); 

        RichTextField txt1=new RichTextField(); 
        txt1.setText("lat=="+lat); 

        add(txt); 
        add(txt1); 


//     persistentLatitude.setContents(Double.toString(latitude)); 
//     persistentLongitude.setContents(Double.toString(longitude)); 



        } 
        }); 
      } 

我想檢查GPS和互聯網(WIFI,BES,GPRS/EDGE等),無論連接可用,我想通過提供服務來獲取座標。

回答

2

在BB模擬器的默認GPS位置(據我記得滑鐵盧)設置在加拿大的位置,這就是爲什麼你得到加拿大的座標。您可以從BB Simulator中的'模擬 - > GPS位置'更改GPS位置。 This video from BB SupportForums可能會幫助你。

以下鏈接也可能會有所幫助:

  1. SO Answer for 'BlackBerry GPS Application'
  2. API for BlackberryLocation

連接問題請參閱本link

+0

感謝您的鏈接。來自BB SupportForums的視頻從模擬器轉向GPS。我正在使用BlackBerry Plugin for Eclipse,並且沒有這種選項。我花了一整天的時間,但我沒有看到任何可以打開GPS的地方。我在哪裏可以在Eclipse BlackBerry Plugin中打開GPS? – Sarah 2012-07-17 08:12:32

+0

不要緊,你是否使用Eclipse插件黑莓JDE或者,運行必須是兩個相同的9800模擬器。在運行模擬器之後,您應該查找「模擬 - > GPS位置...」選項......不在Eclipse環境中。 – 2012-07-17 08:25:03

+0

@Sarah,運行應用程序時,請看模擬器的菜單欄。然後你會看到'模擬 - > GPS位置...'選項。 – Rupak 2012-07-17 08:28:52