Eddystone/iBeacon IOS 后台扫描速率

3
我正在开发一个IOS应用程序,用于检测Eddystone和iBeacon信标。我用Corelocation和Corebluetooth进行了实现。我想在后台检测信标,因此也设置了后台模式。我发现,在后台运行一分钟后,扫描的频率大大降低(每五分钟扫描一次)。是否有办法为IOS应用程序设置后台扫描频率?对于我正在开发的应用程序使用情况来说,5分钟似乎是很长的时间。另外,如果另一个信标在范围内,是否有任何方法唤醒应用程序?
1个回答

3
使用CoreBluetooth在iOS上后台扫描BLE设备可能相对较慢,正如您所建议的那样,您5分钟的检测时间并不罕见。单独使用CoreBluetooth不能增加扫描频率。然而,CoreLocation更加优化了检测速度,但它仅限于iBeacon格式。
您可以将发送iBeacon帧的信标与发送Eddystone帧的信标组合起来(用于其他目的),这样可以提高Eddystone检测时间的速度。如果在接收到iBeacon监控后台事件时开始搜索信标,则会发现您的Eddystone检测时间也会加快。这个技巧允许您使用CoreLocation范围进行CoreBluetooth扫描 - 在幕后它们实际上是相同的。

我的主要目的是在后台尽快检测到新的Eddystone地址。因此,如果我从一个房间走到另一个房间,我不需要等待5分钟才能检测到新的地址。如果我让某个发射设备同时发射iBeacon和Eddystone,并使用CoreLocation来检测更改,那么我就能同时扫描Eddystone了,你是这个意思吗?如果您之前尝试过这样做,那么应用程序能够多快地检测到Eddystone地址的更改,以时间为单位?谢谢 - Parth Parekh
我没有测量过它的速度,但我认为它应该与使用CoreBluetooth进行前台扫描类似。 - davidgyoung
@davidgyoung,请问如何将iBeacon和Eddystone结合起来,这样当应用处于后台模式时,我可以从Eddystone获取URL。 - swapnali patil
这值得新开一个问题。基本思路是在AppDelegate中设置CoreLocation信标监测。如果您打开一个新的问题,展示您的Eddystone检测代码,我可以提供帮助。 - davidgyoung

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