嗨,我正在开发一个实时位置跟踪应用程序,我使用了 Fused Location 提供程序 Api。当设备移动时,我能够获得位置更新。但是,即使我在室内时设备静止在桌子上,我也能够获取位置更新。所以我计算了在 Onlocationchanged 事件中触发的最后一个位置和当前位置之间的距离,并检查距离是否小于 30 米,以了解设备实际上正在移动。但有时我得到的距离大于 400 米(室内/设备是固定的)。当我在室内时,如何忽略 onlocationchange 事件?任何建议表示赞赏。在此先感谢。
问问题
1015 次
1 回答
1
不幸的是,我认为您对此无能为力。
你看到这些更新有很大变化的原因是因为在室内,你不会获得 GPS 锁定,所以设备依靠手机信号塔和 WiFi 热点三角测量来确定你的位置,而 200m 到 1km 左右的距离是最好的。会得到这种技术。
破解它的一种可能尝试是:
- 检查位置更新的来源和精度
- 使用活动识别 API来猜测设备是否真的移动了
但两者都是围绕技术限制的黑客攻击,可能不那么可靠。
于 2015-01-07T11:59:55.513 回答