0

我得到了这条小线:

int meter = 1;
update 5000; //1 ms
globalconstant.mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, (long) update, meter,globalconstant.mlocListener);

有人能告诉我这是什么意思吗?这是否意味着 gps 更新时间为 5 秒,如果位置更改 1 米,如果我在 5 秒内移动 1 米 4 次,它可能会在 5 秒内刷新 4 次?

4

3 回答 3

3

iirc 表示每 5 秒检查一次位置,每次检查后,如果移动超过 1 米,它会通知 mlocListener。(如果你没有移动超过1米,它不会通知)

这意味着您每 5 秒最多将获得1 次更新 - 但可能会更少(即,如果您不移动,您的应用将不会获得位置更新)。

至少,它应该是这样工作的。鉴于 GPS 不准确等,即使您站着不动,您最终也可能会收到位置更新(我认为 - 自从我使用 GPS 代码以来已经有一段时间了)

于 2012-09-28T10:46:31.730 回答
0

您可以查看位置管理器文档。语法是 requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)

  • 提供商,其中 GPS_PROVIDER 或 NETWORK_PROVIDER
  • minTime 是获取 GPS 信号所需的最短时间
  • minDistance , 经纬度坐标的最小变化
  • listener , LocationLister 监听 GPS 信号

因此,在您的情况下,获取 GPS 至少需要 5 秒,距离精度可以为 1 米。

于 2012-09-28T10:49:06.673 回答
-1

这意味着 GPS 将尝试每 5 秒计算一次设备位置。如果计算出的新位置距离前一个位置超过 1 米,那么它将调用 LocationListener 并将新位置作为参数。如果新位置与前一个位置接近一米,它将被丢弃并且不会调用 Listener。

在此处查看文档:位置管理器

于 2012-09-28T10:50:03.217 回答