改了蓝牙管理类逻辑,加了触发事件是否是当前连接的设备,如果不是则丢弃
authorliangzhenying <867174124@qq.com>
Wed, 1 Apr 2026 03:41:24 +0000 (11:41 +0800)
committerliangzhenying <867174124@qq.com>
Wed, 1 Apr 2026 03:41:24 +0000 (11:41 +0800)
ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCBleManager.swift
ShenYin/ShenYin/Channel/PLAYBOY/Channel/Config/CCBleManager.swift

index cda64b3..b4da580 100644 (file)
@@ -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){
index 3f9c311..9cb5766 100644 (file)
@@ -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)
     }
 }