在黑莓中通过 GPS 获取坐标

Posted

技术标签:

【中文标题】在黑莓中通过 GPS 获取坐标【英文标题】:Get coordinates via GPS in blackberry 【发布时间】:2012-07-17 06:55:47 【问题描述】:

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

【问题讨论】:

【参考方案1】:

BB Simulators 中的默认 GPS 位置设置为加拿大的某个位置(据我所知是滑铁卢),这就是您获取加拿大坐标的原因。您可以从 BB Simulator 中的“模拟-> GPS 位置”更改 GPS 位置。 This video from BB SupportForums 可以帮到你。

以下链接也可能有帮助:

    SO Answer for 'BlackBerry GPS Application' API for BlackberryLocation

有关连接问题,请参阅link

【讨论】:

感谢您的链接。来自 BB SupportForums 的视频,用于从模拟器中转换 GPS。我正在使用 BlackBerry Plugin for Eclipse,但没有这样的选项。我花了一整天的时间,但我没有看到任何可以打开 GPS 的地方。我在 Eclipse BlackBerry Plugin 中从哪里打开 GPS? 不管你用的是Eclipse Blackberry Plugin还是JDE,两者运行的9800模拟器必须是一样的。您应该在运行模拟器后寻找“模拟 --> GPS 位置...”选项...而不是在 Eclipse 环境中。 @Sarah,运行应用程序时请查看模拟器的菜单栏。然后您将看到“模拟 --> GPS 位置...”选项。 谢谢各位,我现在明白了。我的错误,没有正确查找。谢谢。 @HeartBeat,在您发表评论之前,无论如何我都会这样做:) 链接对我很有用。谢谢。

以上是关于在黑莓中通过 GPS 获取坐标的主要内容,如果未能解决你的问题,请参考以下文章

GPS坐标在使用网络的黑莓9800中不起作用

如何在黑莓中使用经度和纬度获取当前地址

如何在黑莓 10 级联 qml 中获取列表视图行数?

如何在黑莓手机中测试黑莓应用程序

有没有办法在黑莓中以字符串的形式获取异常的堆栈跟踪?

在黑莓中无延迟播放音频