2012-07-17 86 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