0

嗨,我正在开发一个实时位置跟踪应用程序,我使用了 Fused Location 提供程序 Api。当设备移动时,我能够获得位置更新。但是,即使我在室内时设备静止在桌子上,我也能够获取位置更新。所以我计算了在 Onlocationchanged 事件中触发的最后一个位置和当前位置之间的距离,并检查距离是否小于 30 米,以了解设备实际上正在移动。但有时我得到的距离大于 400 米(室内/设备是固定的)。当我在室内时,如何忽略 onlocationchange 事件?任何建议表示赞赏。在此先感谢。

4

1 回答 1

1

不幸的是,我认为您对此无能为力。

你看到这些更新有很大变化的原因是因为在室内,你不会获得 GPS 锁定,所以设备依靠手机信号塔和 WiFi 热点三角测量来确定你的位置,而 200m 到 1km 左右的距离是最好的。会得到这种技术。

破解它的一种可能尝试是:

  • 检查位置更新的来源和精度
  • 使用活动识别 API来猜测设备是否真的移动了

但两者都是围绕技术限制的黑客攻击,可能不那么可靠。

于 2015-01-07T11:59:55.513 回答