A2DP 和HFP uapi接口BUG修复 677/2 677/head 678/target/1
authorhcj <1224667075@qq.com>
Mon, 12 Aug 2024 08:24:04 +0000 (16:24 +0800)
committerhcj <1224667075@qq.com>
Mon, 12 Aug 2024 08:24:04 +0000 (16:24 +0800)
code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothModel.h
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp

index 64fe975..c7917c1 100644 (file)
@@ -141,7 +141,8 @@ int uapi_disconnect_remote_device(void);
 int uapi_get_acl_connect_state(void);\r
 int uapi_set_acl_connect_hfp(void);\r
 void uapi_connect_pbap_pce(void);\r
-\r
+int uapi_reconnect(void);\r
+int uapi_set_acl_connect_A2DP(void);\r
 \r
 #ifdef __cplusplus\r
 }\r
index 9b8f13a..06b5a88 100644 (file)
@@ -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
@@ -974,6 +974,9 @@ void BluetoothModel::BtGapAclStateChangedHandle(gap_acl_state_t state, unsigned
 static uint8_t ALC_State_flag=0;\r
 \r
 static uint8_t ALC_connect_hfp_flag=0;\r
+\r
+static uint8_t ALC_connect_A2DP_flag=0;\r
+\r
 // 回调:ACL连接状态上报\r
 void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state, unsigned int reason)\r
 {\r
@@ -989,7 +992,14 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state,
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt hfp_hf_connect ret %X", ret);\r
         ALC_connect_hfp_flag=0;\r
     }\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
@@ -1634,9 +1644,12 @@ int uapi_a2dp_snk_get_device_connect_state()
 int uapi_a2dp_snk_connect()\r
 {\r
 \r
-    int ret = a2dp_snk_connect(&g_bd_addr);\r
+    bd_addr_t bdaddr={0};\r
+    get_phone_addr(&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
-    g_bd_addr.addr[3], g_bd_addr.addr[2], g_bd_addr.addr[1], g_bd_addr.addr[0], g_bd_addr.type); /* 3 2 1 0 idx */\r
+    bdaddr.addr[3], bdaddr.addr[2], bdaddr.addr[1], bdaddr.addr[0], bdaddr.type); /* 3 2 1 0 idx */\r
 \r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"state(int): %x\n", ret);\r
     return ret;\r
@@ -1644,7 +1657,11 @@ int uapi_a2dp_snk_connect()
 \r
 int uapi_a2dp_snk_disconnect()\r
 {\r
-    int ret = a2dp_snk_disconnect(&g_bd_addr);\r
+    \r
+    bd_addr_t bdaddr={0};\r
+    get_phone_addr(&bdaddr);\r
+\r
+    int ret = a2dp_snk_disconnect(&bdaddr);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"state(int): %d\n", ret);\r
     return ret;\r
 }\r
@@ -1653,12 +1670,13 @@ int uapi_disconnect_remote_device()
 {\r
     bd_addr_t bdaddr={0};\r
     get_phone_addr(&bdaddr);\r
-    if (bt_is_acl_connected(&bdaddr))\r
-    {\r
+\r
+    // if (bt_is_acl_connected(&bdaddr))\r
+    // {\r
        \r
-       int ret = gap_disconnect_remote_device(&bdaddr);\r
-       WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_close_all gap_disconnect_remote_device ret = %u", ret);\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
     return 0;\r
 }\r
 \r
@@ -1676,6 +1694,24 @@ int uapi_set_acl_connect_hfp()
     ALC_connect_hfp_flag=1;\r
     return 0;\r
 }\r
+\r
+int uapi_set_acl_connect_A2DP()\r
+{\r
+    ALC_connect_A2DP_flag=1;\r
+    return 0;\r
+}\r
+\r
+\r
+int uapi_reconnect(void)\r
+{\r
+    bd_addr_t bdaddr={0};\r
+    get_phone_addr(&bdaddr);\r
+    int ret=gap_reconnect_media_device(&bdaddr);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ret(int): %X\n", ret);\r
+\r
+    return 0;\r
+}\r
+\r
 // /////////////////////////////////////////HFP hf端 代码///////////////////////////////////////////////////\r
 \r
 // int uapi_HFP_hf_connect()\r