我正在尝试监听所有蓝牙连接/断开事件。尽管调用了委托的centralManagerDidUpdateState
函数,但当我连接或断开蓝牙设备时什么都不会发生。
我对出现的问题感到困惑。我是这样初始化中央管理器/委托的:
var btDelegate: CBCentralManagerDelegate = BluetoothDelegate()
var btManager = CBCentralManager(delegate: btDelegate, queue: nil)
BluetoothDelegate的定义如下:
import Foundation
import CoreBluetooth
class BluetoothDelegate : NSObject, CBCentralManagerDelegate {
func centralManager(central: CBCentralManager!, didConnectPeripheral peripheral: CBPeripheral!) {
println("connect") //this line is not called
}
func centralManager(central: CBCentralManager!, didDisconnectPeripheral peripheral: CBPeripheral!, error: NSError!) {
println("disconnect") //this line is not called
}
func centralManagerDidUpdateState(central: CBCentralManager!) {
println("state update") //this line is called
}
}
注意:即使未调用连接和断开连接,我仍然可以持续接收更多的状态更新事件,例如当我切换蓝牙时。
nil
,因为即使没有连接和断开连接,我们仍然可以继续接收状态更新事件。原来iOS有一个单独的概念,即与您的应用程序“本地”连接,而连接/断开连接仅在本地连接时调用。但我不确定如何监听蓝牙配对本身,这是目标。 - pimlu