Codenameone 如何使用GPS进行即时读数定位
我写了一个“Codenameone应用程序”,在某些情况下需要对位置进行测量,并且需要立即(及时)读取 为了实现这个目标,我使用Display对象的方法“getLocationSync(longtimeout=10000)”。代码是这样的:Codenameone 如何使用GPS进行即时读数定位,codenameone,Codenameone,我写了一个“Codenameone应用程序”,在某些情况下需要对位置进行测量,并且需要立即(及时)读取 为了实现这个目标,我使用Display对象的方法“getLocationSync(longtimeout=10000)”。代码是这样的: Location loc = LocationManager .getLocationManager() .getCurrentLoc
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,也很难知道设备的准确位置,因为位置在相对较大的误差范围内,并且只有在设备开始移动时才能更准确地计算