我正在尝试在后台扫描BLE设备,但未调用我的didDiscoverPeripheral方法。我一直在等待5分钟,什么都没发生,但是当我打开其他蓝牙应用程序(如“ LightBlue”)时,我的didDiscoverPeripheral立即被调用。每次都会发生这种情况。如何在不运行LightBlue的情况下进行这项工作?

这是我的扫描代码:
central.scanForPeripherals(withServices: [cbuuid], options: nil)

项目具有正确的背景设置,因为在启动LightBlue之后,didDiscoverPeripheral在后台工作。

最佳答案

我已经找出问题所在。

蓝牙设备有两种类型的广告,一种是没有服务的uuid。在后台,iOS会跳过没有服务uuid​​的广告。我已将设备内的所有广告包更改为具有服务uuid​​,并且一切正常。

关于ios - CoreBluetooth-在没有LightBlue的情况下不会调用背景模式下的didDiscoverPeripheral,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43552595/

10-12 14:45