br连接地址纠正
authorhcj <1224667075@qq.com>
Wed, 14 Aug 2024 03:40:08 +0000 (11:40 +0800)
committerhcj <1224667075@qq.com>
Wed, 14 Aug 2024 03:40:08 +0000 (11:40 +0800)
code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothModel.h
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp

index c7917c1..1857e05 100644 (file)
@@ -143,6 +143,7 @@ int uapi_set_acl_connect_hfp(void);
 void uapi_connect_pbap_pce(void);\r
 int uapi_reconnect(void);\r
 int uapi_set_acl_connect_A2DP(void);\r
+void uapi_get_br_address(bd_addr_t *bdaddr);\r
 \r
 #ifdef __cplusplus\r
 }\r
index 54a52dd..9981e57 100644 (file)
@@ -154,7 +154,7 @@ static int bluetooth_init_all(void)
     // ret = gap_ble_set_sec_param(&sec_params);//设置配对参数 发起配对弹窗\r
 \r
     gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 1, GAP_BLE_GAP_SECURITY_MODE1_LEVEL3 };\r
-    // gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 0, GAP_BLE_GAP_SECURITY_MODE1_LEVEL2 };\r
+   // gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 0, GAP_BLE_GAP_SECURITY_MODE1_LEVEL2 };\r
     ret = gap_ble_set_sec_param(&sec_param);\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt gap_ble_set_sec_param ret = %u", ret);\r
 \r
@@ -174,7 +174,7 @@ static int bluetooth_init_all(void)
     \r
     // BtInitCallBacksEx(); //BLE\r
     // BtInitGatts(); //BLE \r
-    uapi_pbap_pce_reg_callback();\r
+    //uapi_pbap_pce_reg_callback();\r
     // BtInitSpp();\r
     BtA2dpInit();\r
 \r
@@ -205,8 +205,8 @@ void bluetooth_enable_all(void)
         // bts_feature.bt_auto_reconnect_closed = 0;\r
         // ret = bts_set_features(&bts_feature);\r
         // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt bts_set_features ret = %u", ret);\r
-    gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 1, GAP_BLE_GAP_SECURITY_MODE1_LEVEL3 };\r
-        //gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 0, GAP_BLE_GAP_SECURITY_MODE1_LEVEL2 };\r
+        gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 1, GAP_BLE_GAP_SECURITY_MODE1_LEVEL3 };\r
+       // gap_ble_sec_params_t sec_param = { 1, GAP_BLE_IO_CAPABILITY_NOINPUTNOOUTPUT, 0, GAP_BLE_GAP_SECURITY_MODE1_LEVEL2 };\r
         ret = gap_ble_set_sec_param(&sec_param);\r
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt gap_ble_set_sec_param ret = %u", ret);\r
         /**开始ble广播*/\r
@@ -743,11 +743,16 @@ void BluetoothModel::BtGapDiscoveryResultCallbakHandle(const bd_addr_t &bdAddr)
     }\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bt BtGapDiscoveryResultCallback end");\r
 }\r
-\r
+bd_addr_t BtGapPair_bdAddr={0};\r
 void BtGapPairStatusChangedCallback(const bd_addr_t *bdAddr, int status)\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGapPairStatusChangedCallback addr: ****%02x%02x%02x%02x status: %d\n",\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairStatusChangedCallback addr: ****%02x%02x%02x%02x status: %d\n",\r
         bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0], status); /* addr下标 0 1 2 3 */\r
+    memcpy(&BtGapPair_bdAddr,bdAddr,sizeof(bd_addr_t));\r
+    uapi_a2dp_snk_connect();\r
+    //uapi_a2dp_snk_connect();\r
+    //a2dp_snk_connect(bdAddr);\r
+   \r
     if (status == GAP_PAIR_PAIRED) {\r
         if (ConnectPhonePresenter::GetInstance() != nullptr) {\r
             NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
@@ -757,13 +762,13 @@ void BtGapPairStatusChangedCallback(const bd_addr_t *bdAddr, int status)
 \r
 void BtGapPairRequestedCallback(const bd_addr_t *bdAddr)\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGapPairRequestedCallback addr: ****%02x%02x%02x%02x\n",\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairRequestedCallback addr: ****%02x%02x%02x%02x\n",\r
         bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0]); /* addr下标 0 1 2 3 */\r
 }\r
 \r
 void BtGapPairConfirmedCallback(const bd_addr_t *bdAddr, int req_type, int number)\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BtGapPairConfirmedCallback addr: ****%02x%02x%02x%02x req_type: %d number: %d\n",\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairConfirmedCallback addr: ****%02x%02x%02x%02x req_type: %d number: %d\n",\r
         bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0], /* addr下标 0 1 2 3 */\r
         req_type, number);\r
 }\r
@@ -984,22 +989,23 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state,
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: %02x%02x%02x%02x%02x%02x",\r
         bdAddr->addr[5], bdAddr->addr[4], bdAddr->addr[3], /* mac下标 0 1 2 3 4 5 */\r
         bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */\r
-    ALC_State_flag=state;\r
 \r
-    if(ALC_connect_hfp_flag && state==GAP_ACL_STATE_CONNECTED)\r
-    {\r
-        int ret= hfp_hf_connect(bdAddr);\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt hfp_hf_connect ret %X", ret);\r
-        ALC_connect_hfp_flag=0;\r
-    }\r
+    //ALC_State_flag=state;\r
 \r
-    if(ALC_connect_A2DP_flag && state==1)\r
-    {\r
-        // int ret= hfp_hf_connect(bdAddr);\r
-        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt hfp_hf_connect ret %X", ret);\r
-        uapi_a2dp_snk_connect();\r
-        ALC_connect_A2DP_flag=0;\r
-    }\r
+    // if(ALC_connect_hfp_flag && state==GAP_ACL_STATE_CONNECTED)\r
+    // {\r
+    //     int ret= hfp_hf_connect(bdAddr);\r
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt hfp_hf_connect ret %X", ret);\r
+    //     ALC_connect_hfp_flag=0;\r
+    // }\r
+\r
+    // if(ALC_connect_A2DP_flag && state==1)\r
+    // {\r
+    //     // int ret= hfp_hf_connect(bdAddr);\r
+    //     // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt hfp_hf_connect ret %X", ret);\r
+    //     uapi_a2dp_snk_connect();\r
+    //     ALC_connect_A2DP_flag=0;\r
+    // }\r
 \r
     if ((gap_get_device_class(bdAddr) & 0x200) != 0) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device");\r
@@ -1654,11 +1660,21 @@ int uapi_a2dp_snk_get_device_connect_state()
     return 0;\r
 }\r
 \r
+\r
+void uapi_get_br_address(bd_addr_t *bdaddr)\r
+{\r
+    if(BtGapPair_bdAddr.addr[0]==0 && BtGapPair_bdAddr.addr[1]==0 &&\r
+    BtGapPair_bdAddr.addr[2]==0 && BtGapPair_bdAddr.addr[3]==0 )\r
+    get_phone_addr(bdaddr);\r
+    else\r
+    memcpy(bdaddr,&BtGapPair_bdAddr,sizeof(bd_addr_t));\r
+\r
+}\r
 int uapi_a2dp_snk_connect()\r
 {\r
 \r
     bd_addr_t bdaddr={0};\r
-    get_phone_addr(&bdaddr);\r
+    uapi_get_br_address(&bdaddr);\r
 \r
     int ret = a2dp_snk_connect(&bdaddr);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x g_bd_addr.type: %x\n",\r
@@ -1672,7 +1688,7 @@ int uapi_a2dp_snk_disconnect()
 {\r
     \r
     bd_addr_t bdaddr={0};\r
-    get_phone_addr(&bdaddr);\r
+    uapi_get_br_address(&bdaddr);\r
 \r
     int ret = a2dp_snk_disconnect(&bdaddr);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"state(int): %d\n", ret);\r
@@ -1682,14 +1698,18 @@ int uapi_a2dp_snk_disconnect()
 int uapi_disconnect_remote_device()\r
 {\r
     bd_addr_t bdaddr={0};\r
-    get_phone_addr(&bdaddr);\r
+    uapi_get_br_address(&bdaddr);\r
 \r
-    // if (bt_is_acl_connected(&bdaddr))\r
-    // {\r
+    if (bt_is_acl_connected(&bdaddr))\r
+    {\r
        \r
     int ret = gap_disconnect_remote_device(&bdaddr);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetooth_close_all gap_disconnect_remote_device ret = %u", ret);\r
-    //}\r
+    }\r
+    else\r
+    {\r
+     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt_is_acl_connected bt_acl_is True");\r
+    }\r
     return 0;\r
 }\r
 \r
@@ -1718,7 +1738,7 @@ int uapi_set_acl_connect_A2DP()
 int uapi_reconnect(void)\r
 {\r
     bd_addr_t bdaddr={0};\r
-    get_phone_addr(&bdaddr);\r
+    uapi_get_br_address(&bdaddr);\r
     int ret=gap_reconnect_media_device(&bdaddr);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ret(int): %X\n", ret);\r
 \r