我正在尝试在后台扫描BLE设备,但我的didDiscoverPeripheral方法没有被调用。我一直在等待5分钟但没有发生任何事情但是当我打开其他蓝牙应用程序如“LightBlue”时,我的didDiscoverPeripheral立即被调用。每次都会发生这种情况如何在不运行LightBlue的情况下完成这项工作?
这是我的扫描代码:
central.scanForPeripherals(withServices: [cbuuid], options: nil)
项目具有正确的背景设置,因为在启动LightBlue后,didDiscoverPeripheral正在后台工作。
答案 0 :(得分:0)
我已经找到问题所在。
蓝牙设备有两种类型的广告,一种是没有服务的uuid。在后台iOS浏览没有服务uuid的广告。我已经更改了设备内的所有广告包以获得服务uuid,现在一切正常。