我正在尝试在后台扫描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/