修复可能因ble连接不稳定导致的广播误关,无法重新开启广播,导致重连失败(补 1107/2 1107/head 1108/target/1 1109/target/1 1110/target/1
authorhcj <1224667075@qq.com>
Sat, 5 Oct 2024 06:22:11 +0000 (14:22 +0800)
committerhcj <1224667075@qq.com>
Sat, 5 Oct 2024 06:22:11 +0000 (14:22 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c

index 33f156b..f441755 100644 (file)
@@ -397,6 +397,7 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
             {\r
                 ble_ancs_client_clear(conn_id);\r
             }\r
+\r
         }\r
         else\r
         {\r
@@ -404,8 +405,19 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "其他连接断开,不做多余处理 \r\n");\r
         }\r
         //如果ble连接全部断连,则需要重新开启广播\r
+        //可能因ble连接不够稳定,快速断开ble连接,无法将连接判定为app连接导致断连的时候没有正确重新开启广播\r
         if(!get_ble_connect())\r
-        svr_ble_adv_start();\r
+        {\r
+            svr_ble_adv_start();\r
+            Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开\r
+            ble_disconnect_ok();\r
+            free_ble_data(); \r
+\r
+            if(get_ble_pair())\r
+            {\r
+                ble_ancs_client_clear(conn_id);\r
+            }\r
+        }\r
        \r
      \r
     }   \r