【问题标题】:iBeacon Monitoring ReliabilityiBeacon 监控可靠性
【发布时间】:2016-05-29 14:29:30
【问题描述】:

我正在寻求帮助,以了解我在使用 CoreLocation 监控 iBeacon 时观察到的一些 iBeacon 可靠性问题。

我有一组具有相同 UUID,但主次编号不同的信标。我的程序设置为监视所有这些(不是范围)。对于信标,我的传输功率处于绝对最小值(据说会导致 5 英尺的信标区域半径)。有时效果很好,但我观察到一些不一致的行为,包括:

  • 走到信标前,从未收到过进入事件(即使当 在它旁边站了几分钟)
  • 从远处的信标接收进入事件(当已经在 不同地区,不动)
  • 坐在信标区域内时的间歇性退出/进入事件 (这似乎在阅读其他帖子时很常见)

我对人们可能知道的 iBeacons 最佳实践感兴趣。我观察到的问题似乎源于不可靠的传输范围和波动的信标信号强度。有没有简单的方法来改善这个问题?

我的目标是在附近放置几个信标。我应该考虑测距以帮助降低一些可靠性吗?如果是这样,我的理解是您无法在后台确定可靠性范围。

此外,如果您的应用程序已经在信标区域内启动,我正在尝试确认您是否会收到并输入事件?

【问题讨论】:

    标签: ios core-location ibeacon


    【解决方案1】:

    一般来说,降低信标的发射功率会产生非常不可靠的检测,即使是近距离也是如此。这是因为弱信号意味着低信噪比,这会导致间歇性地无法将信标检测为背景噪声和几何形状随时间变化的变化。这就是导致您描述的进入/退出事件的原因。

    另一种方法是最大化信标发射器功率并依靠信标测距根据估计距离或原始信号强度 (RSSI) 过滤掉远处的信标。 这通常会被证明更可靠,因为更强的传输具有更高的信噪比,并且不易受无线电噪声和其他环境变化的影响。

    此替代方案的主要挑战在于,iOS 在后台将测距信标限制为 10 秒,或根据要求延长 180 秒。如果您请求特殊的位置背景权限,您可以进行无限的背景范围,但这需要 AppStore 的特殊批准并且会消耗更多电量。

    这适用于您的用例吗?这取决于您要完成的具体目标,以及用户在信标附近停留的频率。您还可以通过以导致进入/退出事件的方式放置信标来游戏系统。

    最后,虽然您在应用启动时没有收到区域进入通知,但您可以随时动态请求区域输入/输出状态,这应该可以满足您的需求。

    【讨论】:

    • 感谢您的回复 - 您如何动态请求区域输入/输出状态?
    • 您可以调用locationManager.requestStateForRegion(region),这会触发对locationManager(manager: CLLocationManager, didDetermineState state: CLRegionState, forRegion region: CLRegion) 的回调,其中包含传递区域的输入/输出状态。
    • 您可以调用locationManager.requestStateForRegion(region),这会触发对locationManager(manager: CLLocationManager, didDetermineState state: CLRegionState, forRegion region: CLRegion) 的回调,其中包含传递区域的输入/输出状态。
    • 谢谢,再次感谢您的帮助。还有一个问题-您说理论上可以进行无限的背景测距。我们启用了“位置更新”后台模式,locationManager.pausesLocationUpdatesAutomatically = false 和 locationManager.allowsBackgroundLocationUpdates = true。我们还需要做些什么来“理论上”看到无限的背景范围吗?它目前在后台的进入/退出事件期间范围内,但不像在前台那样连续。
    • 您需要在您的 plist 中添加位置背景模式,并启动一个后台线程。见这里:developer.radiusnetworks.com/2014/11/13/…
    【解决方案2】:

    作为一个有趣的花絮:上次我们测量它时,通过监视将信标视为“在范围内”的 RSSI 阈值为 -88 dBm,包括在内。 (即,如果 RSSI 高于此值,您将获得“进入”;如果低于该值,您将获得“退出”——请记住 30 秒的退出延迟)

    对于故障排除练习,您可以开始测量信标并记录 RSSI 值,并根据您相对于信标的位置检查它们与此阈值的比较情况。

    【讨论】:

    • 感谢您的信息。我正在近距离的室内环境中使用信标。因此,我将信标上的信标功率调低(因此它们的半径约为 5 到 10 英尺)。我想知道这种较低的功率是否会导致一些监控可靠性问题(正如@davidgyoung 所建议的那样)
    猜你喜欢
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2016-03-29
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多