From: liangzhenying <867174124@qq.com> Date: Wed, 1 Apr 2026 03:41:24 +0000 (+0800) Subject: 改了蓝牙管理类逻辑,加了触发事件是否是当前连接的设备,如果不是则丢弃 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=3aa3cb70072d63d065b0381493d8d7c93a511a64;p=mirrors%2FShenYin.git 改了蓝牙管理类逻辑,加了触发事件是否是当前连接的设备,如果不是则丢弃 --- diff --git a/ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCBleManager.swift b/ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCBleManager.swift index cda64b3..b4da580 100644 --- a/ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCBleManager.swift +++ b/ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCBleManager.swift @@ -70,6 +70,11 @@ extension CCBleManager:CBCentralManagerDelegate{ } func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { + if let p = connectPeripheral,p.device.identifier.uuidString != peripheral.identifier.uuidString { + Logger.debug("当前连接\(p)","连接已经连接的\(peripheral)","与当前设备对不上,取消连接") + centralManager.cancelPeripheralConnection(peripheral) + return + } stopScanDevice() Logger.debug("已连接 \(peripheral)") peripheral.delegate = self @@ -82,6 +87,10 @@ extension CCBleManager:CBCentralManagerDelegate{ } } func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) { + if let p = connectPeripheral,p.device.identifier.uuidString != peripheral.identifier.uuidString { + Logger.debug("当前连接\(p)","连接失败\(peripheral)","与当前设备对不上,忽略") + return + } Logger.debug("连接失败\(peripheral)") if let err = error { Logger.debug("error \(err)") @@ -89,7 +98,10 @@ extension CCBleManager:CBCentralManagerDelegate{ conetedFailureCallback?(connectPeripheral!) } func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { - Logger.debug("蓝牙已断开 \(peripheral)") + if let p = connectPeripheral,p.device.identifier.uuidString != peripheral.identifier.uuidString { + Logger.debug("当前连接\(p)","断开连接\(peripheral)","与当前设备对不上,忽略") + return + } if let err = error { Logger.debug("error \(err)") } @@ -142,6 +154,10 @@ extension CCBleManager: CBPeripheralDelegate { } func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { + if let p = connectPeripheral,p.device.identifier.uuidString != peripheral.identifier.uuidString { + Logger.debug("当前连接\(p)","接收数据\(peripheral)","与当前设备对不上,忽略") + return + } //Logger.debug("收到数据 ===uUId ",characteristic.uuid) if CCConfig.sdkType == .joy{ if OtaMananger.isOtadata(characteristic){ diff --git a/ShenYin/ShenYin/Channel/PLAYBOY/Channel/Config/CCBleManager.swift b/ShenYin/ShenYin/Channel/PLAYBOY/Channel/Config/CCBleManager.swift index 3f9c311..9cb5766 100644 --- a/ShenYin/ShenYin/Channel/PLAYBOY/Channel/Config/CCBleManager.swift +++ b/ShenYin/ShenYin/Channel/PLAYBOY/Channel/Config/CCBleManager.swift @@ -68,6 +68,11 @@ extension CCBleManager:CBCentralManagerDelegate{ } func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { + if let p = connectPeripheral,p.device.identifier.uuidString != peripheral.identifier.uuidString { + Logger.debug("当前连接\(p)","连接已经连接的\(peripheral)","与当前设备对不上,取消连接") + centralManager.cancelPeripheralConnection(peripheral) + return + } stopScanDevice() Logger.debug("蓝牙已连接 \(peripheral)") peripheral.delegate = self @@ -75,6 +80,10 @@ extension CCBleManager:CBCentralManagerDelegate{ peripheral.discoverServices([CBUUID(string: DCBleManager.serviceUUID)]); } func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) { + if let p = connectPeripheral,p.device.identifier.uuidString != peripheral.identifier.uuidString { + Logger.debug("当前连接\(p)","连接失败\(peripheral)","与当前设备对不上,忽略") + return + } Logger.debug("连接失败\(peripheral)") if let err = error { Logger.debug("error \(err)") @@ -82,6 +91,10 @@ extension CCBleManager:CBCentralManagerDelegate{ conetedFailureCallback?(connectPeripheral!) } func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { + if let p = connectPeripheral,p.device.identifier.uuidString != peripheral.identifier.uuidString { + Logger.debug("当前连接\(p)","断开连接\(peripheral)","与当前设备对不上,忽略") + return + } Logger.debug("蓝牙已断开 \(peripheral)") if let err = error { Logger.debug("error \(err)") @@ -107,6 +120,10 @@ extension CCBleManager: CBPeripheralDelegate { DCBleManager.shared.peripheral(peripheral, didDiscoverCharacteristicsFor: service, error: error) } func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { + if let p = connectPeripheral,p.device.identifier.uuidString != peripheral.identifier.uuidString { + Logger.debug("当前连接\(p)","接收数据\(peripheral)","与当前设备对不上,忽略") + return + } DCBleManager.shared.peripheral(peripheral, didUpdateValueFor: characteristic, error: error) } }