如何使用GPS建立即时阅读位置

时间:2016-04-12 15:38:21

标签: codenameone

我写了一个“Codenameone应用”,需要在某些情况下制定位置测量,并且需要立即(当时)阅读。

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

Location loc = LocationManager
                            .getLocationManager()
                                  .getCurrentLocationSync(10000);

此方法的JavaDoc表示它会立即执行一项措施并建议: “请注意,他的方法将阻塞,直到返回结果,因此您可能希望在运行时使用InfiniteProgress之类的东西”

正如您所看到的,我用10秒的时间调用该方法进行超时。

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

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

我做错了吗? 根据需要,我需要做些什么才能真正衡量位置?

1 个答案:

答案 0 :(得分:0)

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

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