在黑莓手机上通过GPS获取坐标

时间:2012-07-17 06:55:48

标签: gps location blackberry-simulator

我在BlackBerry模拟器9800中调用startLocationUpdate()来获取我所在位置的坐标(纬度,经度),即在阿联酋。但是我得到了加拿大的坐标。这是什么意思? 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 /边缘等)和任何可用的连接,我想通过可用的服务获取坐标。

1 个答案:

答案 0 :(得分:2)

BB模拟器中的默认GPS位置设置为加拿大(据我记得的滑铁卢)中的位置,这就是您获取加拿大坐标的原因。您可以在BB模拟器中从“模拟 - > GPS位置”更改GPS位置。 This video from BB SupportForums可能会对您有所帮助。

以下链接也可能有所帮助:

  1. SO Answer for 'BlackBerry GPS Application'
  2. API for BlackberryLocation
  3. 有关连接问题,请参阅此link