我正试着用蓝牙设备在附近连接。我能够发现,但我无法将它们联系起来。
此代理正在工作,但在发现我正在尝试连接其中一个外围设备后
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
if let device = (advertisementData as NSDictionary).object(forKey: CBAdvertisementDataLocalNameKey) as? String {
print(device)
if device.contains("BODY") {
self.connectPeripheral = peripheral
self.connectPeripheral.delegate = self
self.manager.connect(connectPeripheral, options: nil)
self.manager.stopScan()
}
}
}
这两个委托方法没有调用。其中一个应该被调用。
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
peripheral.delegate = self
peripheral.discoverServices(nil)
}
func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) {
//NSLog("Error %@", error.debugDescription)
print(error.debugDescription)
}
发布于 2017-10-21 02:12:16
您需要维护对CBPeripheral实例的强引用,因为一旦您告诉Central停止扫描,它将取消分配其发现的所有外围设备。
https://stackoverflow.com/questions/43739125
复制相似问题