【问题标题】:CLLocationManager - Monitoring regions vs. Significant Location ChangesCLLocationManager - 监控区域与重大位置变化
【发布时间】:2012-06-11 14:30:03
【问题描述】:

我目前正在使用重要的位置变化更新来监控用户是否进入了特定的感兴趣区域(我对感兴趣区域的定义比简单地按地理区域定义的范围更广)。我的要求是应该定期唤醒我的应用程序以检查用户是否在定义的区域(如果它当前没有运行)。

我的问题是:注册区域更新(因为我有许多已知适合我感兴趣的区域的区域),为我提供更多更新,而不是简单地监听所有重大的位置变化,或者他们只是重复更新?我问这个问题的原因是为了澄清区域监控是否只是对重大位置变化更新的过滤器(因为两者都没有记录为为 GPS 供电),或者区域监控是否能够以某种方式更具体(也许它为GPS,但更具体)。特别是,我很想知道是否有人看过有关此问题的数据或文档。

谢谢。

【问题讨论】:

  • 请记住,您无法“唤醒”您的应用。应用可以继续在后台运行以监控位置更新,但如果应用完全退出,则必须由用户重新打开。
  • 抱歉,不是“唤醒”,而是在必要时在后台运行以显示通知。
  • 这不是真的,这两个选项都可以从终止状态唤醒以接收该位置更新,即使被用户关闭。 stackoverflow.com/questions/19850088/…

标签: ios location cllocationmanager


【解决方案1】:

区域监控似乎来自比重要的位置变化服务更具体的位置信号变化。我这样说是因为我已经定义了区域监控在后台拾取的小区域(半径约 100 m),但显着的位置变化没有。但是请记住,这两个事件是在不同类型的用户操作上触发的。

区域监控 - 仅在过境点触发。因此,用户必须在边界的任一侧都有两个位置更新事件。如果您定义大区域并且用户在其中走动,您将获得no更新。

显着的位置变化 - 似乎是在手机切换信号塔时触发的,Location Awareness 文档似乎暗示了这一点。以下是关于这些更新的一般准确性的一些great data,表明通知之间的距离约为 500 m。

【讨论】:

  • 酷。感谢那。有趣的事实:从实验来看,当手机处于睡眠状态时,它会限制重要位置更新的频率(大约每 5-10 分钟一次),但对于区域并没有这样做,这似乎可以解释为什么区域监控更新不仅仅是重大位置变化的一个子集,而且都依赖于手机信号塔而不是为 GPS 供电。另外,我注意到,如果我在睡觉时旅行,我经常会在唤醒手机后立即收到重要的位置变化更新。
  • 所以说我在一个地区之外,然后乘坐地铁进入一个地区。如果我没有跨越边界,区域监控会不起作用吗?
  • 正确 - 在区域内触发位置事件之前,它不会检测到交叉点。但是请记住,位置不仅仅是 GPS,我的猜测是,如果在地铁中可用,手机 + wifi 仍然可以检测到您在该区域内。地铁移动很快,所以我建议更大的区域以防止直接通过。
  • 我猜如果用户在某个偏远的地方,重要位置更改将无法正常工作......因为 cellTowers 不是那么频繁。对吗?
猜你喜欢
  • 2012-03-22
  • 2013-07-04
  • 2018-08-04
  • 1970-01-01
  • 2015-04-18
  • 2016-08-30
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多