Eddystone/iBeacon IOS 背景扫描率

Eddystone/iBeacon IOS background scan rate

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

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

您可以做的一件事是将发送 iBeacon 帧的信标(为了提高速度)与发送 Eddystone 帧的信标(用于其他目的)。如果您在收到 iBeacon 监控后台事件时开始对信标进行测距,您会发现您的 Eddystone 检测时间也会加快。这个技巧允许您使用 CoreLocation 范围启动 CoreBluetooth 扫描——在引擎盖下它们真的是一样的。