用户不移动时如何自动暂停 GPS 跟踪器
Posted
技术标签:
【中文标题】用户不移动时如何自动暂停 GPS 跟踪器【英文标题】:How to automatically pause a GPS tracker when user is not moving 【发布时间】:2018-04-27 15:16:02 【问题描述】:我有一个两部分的问题(1)如何在用户不移动时暂停活动跟踪,(2)这可以节省电池寿命吗?
更多信息。我正在构建一个活动跟踪器,但对于通常涉及大量暂停的活动 - 例如。步行30分钟,在某个位置等待60-120分钟,然后再步行30分钟等。
由于整体跟踪最多可能需要 3-4 小时,因此尽可能减少电池消耗会很有用。当用户在给定位置较长时间时,由于 GPS 不准确,活动的折线不包括很多来回也是很好的。
回到问题上来。 (1) 如何使用 swift 识别用户何时静止,并暂停折线跟踪 (2) 这会节省电池寿命吗?
【问题讨论】:
如果您暂停位置更新,如何知道用户是否再次开始移动? 【参考方案1】:您应该查看startMonitoringSignificantLocationChanges()
(documentation here)。
上述链接中的描述似乎符合您的需要:
在返回当前位置修复后,接收器生成更新 仅当用户位置发生重大变化时才发生事件 检测到。
您可能还希望包含此检查以确保您可以使用上述功能:
significantLocationChangeMonitoringAvailable()
返回一个布尔值,指示是否显着变化 提供定位服务。
【讨论】:
这也是我的建议,但请注意,在重要的位置监控触发更新之前,用户可能必须移动 500m。 @Paulw11 同意,但“然后再步行 30 分钟”的评论暗示会走一段距离。 是的,我不是在批评你的方法。我只是想让 OP 意识到这一点。他们没有说明数据需要有多准确;从重要的位置更新推断出的直线距离可能与沿街道行驶的实际距离等有很大不同。 嗨,根据我的需要进一步研究了这一点,最好使用加速度计的运动数据来检测用户是否在移动。例如,如果没有/有限的运动被捕获。 30 秒启动暂停(GPS 关闭以节省电池寿命),当运动被捕获 5-10 秒时重新打开 GPS。是否有人对以最用户友好的方式使用哪些规则打开/关闭暂停有任何经验。不想经常暂停,或者太晚重新开始跟踪...以上是关于用户不移动时如何自动暂停 GPS 跟踪器的主要内容,如果未能解决你的问题,请参考以下文章