在区域监控期间,检测到iBeacon需要多长时间?

10
假设有个用户将 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每秒传输超过一次,则检测时间会更快。我很想听其他人分享他们的答案。 - davidgyoung
但是你所说的“更快”是什么意思呢?即使只需要一分钟而不是十五分钟,对于上述用例来说仍然太慢了。换句话说,似乎苹果并没有为那些场景设计iBeacon。用户应该启动一个应用程序。(或者唤醒手机就足够了吗?) - tomikk
我认为对于上述使用情况(当你想要在一秒内获得保证响应时),应用程序必须在前台。在后台,你最好能够获得设备列表和条件,在这些条件下你可以获得类似的响应时间。 - davidgyoung
整个 iBeacon 的概念是它们应该是被动的。也就是说,如果您没有收到通知,这并不是世界末日。因此,除非您打开应用程序并解锁手机,否则使用它们来在您走进房间时打开灯是行不通的。 - random
根据我的经验,它需要从一秒钟到永远的时间(很少但有时会发生)。在不同的场景中,入口通知通常比出口更具响应性,前台也比后台更具响应性。事情也可能取决于您使用的回调方法。巧合的是,我实际上已经尝试过在本主题中讨论的两种用例中都使用iBeacons,即灯光。顺便说一句,对于门的用例,我目前正在探索使用CoreBluetooth,通过将门作为外围设备来实现。 - Yazid
我有一个应用程序,可以范围iBeacon。该应用程序首先获取已知的proximityUUID列表,并将它们注册为监视区域。 - igraczech
1个回答

2
我有一个应用程序可以寻找iBeacons。它首先获取一组接近UUID并将它们注册为被监测区域。 当设备进入该区域时,只需要1到几秒钟(iPhone 5S)就会在didEnterRegion:事件上向我发布本地通知。 当应用程序在前台时,立即在当前区域内开始搜索信标(如果有),并且更新大约每隔一秒发生一次。 当应用程序处于后台时,不启用搜索,否则它会立即报告信标已经消失(如果您离开其范围)。 然而,在最坏的情况下,当仅启用重要位置监视并且网络差或无网络时,设备可能需要长达15分钟(我已经经历过)才能在后台中发布didExitRegion : 否则,它会在大约一分钟内发生。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接