Codenameone 如何使用GPS进行即时读数定位

Codenameone 如何使用GPS进行即时读数定位,codenameone,Codenameone,我写了一个“Codenameone应用程序”,在某些情况下需要对位置进行测量,并且需要立即(及时)读取 为了实现这个目标,我使用Display对象的方法“getLocationSync(longtimeout=10000)”。代码是这样的: Location loc = LocationManager .getLocationManager() .getCurrentLoc

我写了一个“Codenameone应用程序”,在某些情况下需要对位置进行测量,并且需要立即(及时)读取

为了实现这个目标,我使用Display对象的方法“getLocationSync(longtimeout=10000)”。代码是这样的:

Location loc = LocationManager
                            .getLocationManager()
                                  .getCurrentLocationSync(10000);
该方法的JavaDoc表示,它目前执行一项措施,并建议: “请注意,他的方法将一直阻塞,直到返回结果为止,因此您可能希望在运行过程中使用类似InfiniteProgress的内容”

如您所见,我用10秒的超时时间调用了该方法

实际上,我得到了一个Location对象作为响应,但返回的度量值不是即时度量值(当时)。这种方法会重复相同的结果一段时间(大约4或5分钟),即使我在这4分钟内显著更改了手机位置

我注意到的另一件事是,大多数时候我称之为“getCurrentLocationSync”的“InfiniteProgress”并没有出现。电话很快就回了

我做错什么了吗?
我需要做什么才能获得所需的位置的真实测量值?

getCurrentLocationSync等待位置存在,该位置与纯GPS模式更相关,但与现代混合定位API(如iOS/Android中实现的)不相关


默认情况下,iOS和Android都使用混合定位API,这意味着该设备将结合使用wifi、手机数据和GPS,为您提供更准确、更即时的定位。即使使用GPS,也很难知道确切的设备位置,因为位置在相对较大的误差范围内,并且通常只有在设备开始移动时才能更准确地计算。

getCurrentLocationSync等待a位置存在,该位置与纯GPS模式更相关,但与中的位置不相关现代的混合定位API,如在iOS/Android中实现的API

默认情况下,iOS和Android都使用混合定位API,这意味着该设备将结合使用wifi、手机数据和GPS,为您提供更准确、更即时的定位。即使使用GPS,也很难知道设备的准确位置,因为位置在相对较大的误差范围内,并且只有在设备开始移动时才能更准确地计算