区域监控时检测 iBeacon 需要多长时间?

Posted

技术标签:

【中文标题】区域监控时检测 iBeacon 需要多长时间?【英文标题】:How long does it take to detect an iBeacon while region monitoring? 【发布时间】:2014-01-22 10:38:51 【问题描述】:

以这个场景为例:用户口袋里有一部 iPhone,经过一个 iBeacon。她的手机正在对其进行区域监控。在现实世界中,从进入该区域到唤醒应用程序需要多少时间? 我找到了 David G. Young (http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html) 的一篇关于这个主题的优秀文章,但我不敢相信它真的需要长达 15 分钟。 这意味着所有 iBeacon 家庭自动化场景都根本无法使用,因为您既不会在黑暗的房间里等待 15 分钟才能打开灯,也不会通过主动使用应用程序来打开灯。门打开和锁定是 iBeacon 无法使用的另一种情况(NFC 在这里工作得更好)。还是我错过了什么?

【问题讨论】:

15 分钟是我见过的最糟糕的情况。您通常会获得更快的响应时间。我仍在研究为什么 ios 有时会在蓝牙 LE 扫描之间等待这么长时间的变量,并会在可用时发布我的结果。但初步证据表明:(1) iPhone 5 设备比 iPhone 4S 设备检测速度更快。 (2) 如果您的 iBeacon 每秒传输一次以上,则检测时间会更快。我也很想听听其他人分享他们的答案。 但是“更快”是什么意思?即使是 1 分钟,而不是 15 分钟,对于上述用例来说仍然太慢了。换句话说,Apple 似乎没有为这种情况设计 iBeacon。用户应该启动一个应用程序。 (或者唤醒电话就足够了吗?) 我认为对于上面的用例(您希望在一秒钟内得到保证的响应),应用程序可能必须在前台。您可能希望在后台获得的最好结果是设备和条件列表,在这些设备和条件下,您可以在后台获得类似的响应时间。 整个 iBeacon 的概念是它们应该是被动的。也就是如果你没有收到通知,这不是世界末日。因此,除非您打开应用程序并解锁手机,否则当您走进房间时使用它们打开灯是行不通的。 根据我的经验,它需要一秒钟到永远不会(罕见但有时)。在不同的场景下,入口通知通常比出口响应更灵敏,同样前台比后台多。事情还可能取决于您使用的回调方法。巧合的是,我实际上已经在这个线程中讨论的两个用例中尝试使用 iBeacons,即lights 和door。仅供参考,我目前正在使用CoreBluetooth 探索门用例,将门用作外围设备。 【参考方案1】:

我有一个适用于 iBeacons 的应用程序。它首先获取几个proximityUUID 列表并将它们注册为受监控区域。 当设备进入该区域时,只需 1 到几秒钟(iPhone 5S)就可以在 didEnterRegion: 事件上向我发送本地通知。 当应用程序在前面时,它会立即开始在当前区域(如果有)中测距信标,并以大约一秒的间隔进行更新。 当应用程序处于后台时,测距未启用,否则它会立即报告信标已消失(如果您离开其范围)。 但是,设备发布 didExitRegion 可能需要长达 15 分钟(我经历过这种情况):在最坏的情况下,当处于后台时,当仅启用重要的位置监控并结合不良或没有网络时。否则它会持续到大约一分钟。

抱歉,这不适合评论。

【讨论】:

以上是关于区域监控时检测 iBeacon 需要多长时间?的主要内容,如果未能解决你的问题,请参考以下文章

iBeacon是如何唤醒我们的应用程序的?多长时间?以及如何延长时间?

iBeacon 监控不适用于 Cordova-plugin-ibeacon

核心位置、iBeacon 和区域监控

基于 UUID 监控 iBeacon 区域时,何时收到通知?

当两个应用监控同一个 iBeacon 区域时会发生啥?

iBeacon(Kontakt Beacon)区域监控在android