检查设备是否静止(不移动)以忽略 Android 中的 onlocation 更改事件
Check if the device is STILL (Not Moving) to ignore onlocation changed events in Android
您好,我正在开发一个实时位置跟踪应用程序,我在其中使用了 Fused Location Provider Api。我能够在设备移动时获取位置更新。但即使我在室内时设备固定在 table 上,我也能够获得位置更新。所以我计算了 Onlocationchanged 事件触发的最后一个位置和当前位置之间的距离,并检查距离是否小于 30 米,以了解设备是否确实在移动。但有时我得到的距离大于 400 米(indoor/Device 是静止的)。我在室内时如何忽略 onlocationchange 事件?提前 appreciated.Thanks 提出任何建议。
不幸的是,我认为您无能为力。
你看到这些更新有很大变化的原因是因为在室内,你不会获得 GPS 锁定,所以设备依靠手机信号塔和 WiFi 热点三角测量来确定你的位置,大约 200 米到 1 公里是这种技术的最佳选择。
一种可能的破解方法是:
- 检查位置更新的来源和精度
- 使用activity recognition API猜测设备是否真的移动了
但两者都是 hack,围绕技术限制,可能不那么可靠。
您好,我正在开发一个实时位置跟踪应用程序,我在其中使用了 Fused Location Provider Api。我能够在设备移动时获取位置更新。但即使我在室内时设备固定在 table 上,我也能够获得位置更新。所以我计算了 Onlocationchanged 事件触发的最后一个位置和当前位置之间的距离,并检查距离是否小于 30 米,以了解设备是否确实在移动。但有时我得到的距离大于 400 米(indoor/Device 是静止的)。我在室内时如何忽略 onlocationchange 事件?提前 appreciated.Thanks 提出任何建议。
不幸的是,我认为您无能为力。
你看到这些更新有很大变化的原因是因为在室内,你不会获得 GPS 锁定,所以设备依靠手机信号塔和 WiFi 热点三角测量来确定你的位置,大约 200 米到 1 公里是这种技术的最佳选择。
一种可能的破解方法是:
- 检查位置更新的来源和精度
- 使用activity recognition API猜测设备是否真的移动了
但两者都是 hack,围绕技术限制,可能不那么可靠。