我正在特定线程中执行BLE设备扫描。但如果我希望我的应用程序在后台运行,我需要指定scanForPeripheralsWithServices一系列特定的服务。
启动以下内容时(使用nil):
func startScanning() {
print("Start scanning...")
if let central = centralManager {
central.scanForPeripheralsWithServices(nil, options: nil)
}
}
我可以找到带有UUID“B737D0E7-AF53-9B83-E5D2-922140A92E00”的BLE设备,但正如苹果文档中提到的那样,它不能被破坏,因为它处于后台模式。
然后,如果我将此UUID指定给函数:
func startScanning() {
print("Start scanning...")
if let central = centralManager {
let ble = [CBUUID(string: "B737D0E7-AF53-9B83-E5D2-922140A92E00")]
central.scanForPeripheralsWithServices(ble, options: nil)
}
}
永远不会调用扫描。我想念一下吗?