我總是用CoreBluetooth執行這一協議(CBCentralManagerDelegate,CBPeripheralDelegate)和重寫此方法:
func centralManagerDidUpdateState(_ central: CBCentralManager)
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber)
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral)
func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?)
func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?)
// Check if the service discovered is a valid Service
func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?)
func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?)
// And for getting the value changes in the BLE Device...
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?)
func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?)
我希望它能幫助
您確定該設備實際支持BLE嗎?經典的藍牙和BLE是兩種不同的協議/堆棧。通過'EAAccessoryManager'可見的設備是Classic Bluetooth設備,而不是BLE設備。要掃描BLE設備,您應該使用'CBCentralManager scanForPeripheralsWithServices:options:'。 – jcaron