Eddystone/iBeacon IOS后台扫描率



我正在尝试开发一个IOS应用程序来检测Eddystone以及iBeacons。我使用了Corelocation和Corebluetooth来实现。我想在后台检测信标,因此设置背景模式。我观察到,在后台运行一分钟后,扫描的频率在很大程度上降低了(每5分钟一次)。有没有办法设置IOS应用程序的后台扫描频率?对于我正在开发的应用程序的用例来说,5分钟似乎是很长的时间。此外,如果另一个信标在范围内,有没有办法唤醒应用程序?

在后台使用CoreBluetooth扫描iOS上的BLE设备可能会像你建议的那样相对较慢。你5分钟的检测时间并不罕见。就其本身而言,CoreBluetooth不给您任何能力来增加这个频率。然而,CoreLocation在检测速度方面优化得更好,但仅限于iBeacon格式。

您可以做的一件事是将发送iBeacon帧(用于速度)的信标与发送Eddystone帧(用于其他目的)的信标结合起来。如果你在iBeacon监控后台事件时开始对信标进行测距,你会发现Eddystone检测时间也加快了。这个技巧可以让你启动CoreBluetooth扫描与CoreLocation测距——在引子下,它们实际上是一样的。

最新更新