CoreLocation:知道用户何时没有移动 n 分钟

Posted

技术标签:

【中文标题】CoreLocation:知道用户何时没有移动 n 分钟【英文标题】:CoreLocation: know when user hasn't moved for n minutes 【发布时间】:2014-09-05 12:12:05 【问题描述】:

我正试图准确地实现这一点:当用户在定义的时间内没有移动时调用一个方法,即使应用程序处于后台并且具有合理的功耗。

如果我不关心电源问题,这很容易做到,所以我对设置位置管理器经常刷新等解决方案不太感兴趣。

我找到了一种完全相反的方法,比如确定用户何时离开一个地方,但我似乎找不到我想做的事情。

如果我的情况不够精确,请随时询问更多细节。

谢谢!

【问题讨论】:

【参考方案1】:

您需要在后台线程上执行重复的 NSTimer,检查上次 GPS 更新的时间并采取适当的措施。

为了进一步优化,您可能需要忽略某些基于纬度/经度、时间戳、速度的位置更新。提示:当用户静止时,速度/路线应为 -1(但当用户移动时,这些值可能为 -1)。

【讨论】:

我结束了使用我在用户位置周围设置的地理围栏,以及一个计时器来知道他是否已经越过了它,但是 GPS 精度并不总是很好,所以它并不总是有效,简而言之:没有好的解决方案:(不过我会将你的标记为已接受,你花时间研究它,谢谢! 根据我的经验,GeoFence 依赖于 Wifi/Cell 更改事件,对我来说,它们也不是解决该问题的好方法。如果时间不是重要因素,您在 m 分钟后激活 GPS n 分钟。见***.com/questions/18263047/…

以上是关于CoreLocation:知道用户何时没有移动 n 分钟的主要内容,如果未能解决你的问题,请参考以下文章

一种监视控件的屏幕位置何时更改的方法?

是否有回调用于告知用户位置何时可用

子窗口可以知道何时移动父窗口吗?

IOS-CoreLocation

检测用户何时向左或向右滑动以在 WKWebView 上前后移动

跟踪移动用户何时跨越州或国家线?