繁体   English   中英

在信标周围花费时间

[英]Time spend around a beacon

识别背景中信标周围(不在区域内)的时间的正确方法应该是什么。 当应用程序使用didRangeBeacons和一些业务逻辑在前台运行时,我能够做到这一点。我在一些论坛上读到,当应用程序在后台注册位置更新时,测距确实有效,但是我没有成功。 我在plist中为UIBackgroundModes添加了位置更新键。

我正在使用estimote信标及其sdk。

我在这里看到两个可能的解决方案:

  1. 侦听进入和退出区域事件,存储时间戳,然后使用它们计算退出时的时间跨度。 如果您将区域定义为仅包含一个信标,则监视该区域等同于监视该信标。 唯一要记住的是,iOS限制了同时要监视的20个区域的限制-因此此解决方案不能扩展到20个以上的信标。

  2. 在后台使用范围。 除了UIBackgroundModes ,您还需要启动常规位置服务,即startUpdatingLocation

    当应用程序在前台运行时,信标范围调整通常会传递事件。 当您的应用程序在后台运行时,仅当该应用程序启用了位置更新后台模式且标准定位服务正在运行时,此服务才会传递事件。

    (这来自CLLocationManager类参考 ,“在后台使用位置服务”部分)

    请注意,在后台进行测距将比平时消耗更多的电池寿命,并且Apple还要求使用后台模式的理由。 除非应用程序的用户从后台模式获得了一些价值,否则他们可能会选择拒绝它。 总而言之,明智地使用背景范围! (:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM