0

我在 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/edge 等),无论哪种连接可用,我想通过可用服务获取坐标。

4

1 回答 1

2

BB Simulators 中的默认 GPS 位置设置为加拿大的某个位置(据我所知是滑铁卢),这就是您获取加拿大坐标的原因。您可以从 BB Simulator 中的“模拟-> GPS 位置”更改 GPS 位置。 来自 BB SupportForums 的这段视频可能会对您有所帮助。

以下链接也可能有帮助:

  1. SO 回答“黑莓 GPS 应用程序”
  2. 黑莓位置 API

有关连接问题,请参阅此链接

于 2012-07-17T07:57:08.700 回答