From a94f7a92ec5660d039ea38c595bca8bf0d07433e Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Thu, 18 Jul 2024 11:59:31 +0800 Subject: [PATCH] =?utf8?q?=E5=85=B3=E9=97=AD=E8=87=AA=E5=8A=A8=E5=9B=9E?= =?utf8?q?=E8=BF=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/bluetooth/src/BluetoothModel.cpp | 4 +-- .../phoneservice/src/PhoneService.cpp | 27 ++++++++++++++++--- .../ble_service/bleservice/bleService.c | 9 ++++++- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp index 95714c092..83b267ba7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp @@ -136,7 +136,7 @@ static int bluetooth_init_all(void) errcode_t ret; // 设置自动回连,ios一键双连依赖此配置 - bluetooth_set_auto_reconnect(0); + bluetooth_set_auto_reconnect(1); ret = enable_bt_stack(); WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt enable_bt_stack ret = %u", ret); @@ -1584,7 +1584,7 @@ int uapi_a2dp_snk_connect() { int ret = a2dp_snk_connect(&g_bd_addr); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x playing_state: %x\n", + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x g_bd_addr.type: %x\n", 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 */ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"state(int): %x\n", ret); diff --git a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp index f30105934..9c1b0f1e0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp @@ -539,6 +539,7 @@ static void CopyBdAddr(const bd_addr_t *bdAddr) unsigned char addr[BD_ADDR_LEN] = {0}; if (strncmp((const char*)g_bdAddr.addr, (const char*)addr, BD_ADDR_LEN) == 0) { (void)memcpy_s(g_bdAddr.addr, BD_ADDR_LEN, bdAddr->addr, BD_ADDR_LEN); + g_bdAddr.type=bdAddr->type; } } @@ -565,7 +566,7 @@ static void BtConnectedPro(const bd_addr_t *bdAddr) static void BtDisconnectedPro(void) { g_btConnState = PROFILE_STATE_DISCONNECTED; - (void)memset_s(g_bdAddr.addr, BD_ADDR_LEN, 0, BD_ADDR_LEN); + //(void)memset_s(g_bdAddr.addr, BD_ADDR_LEN, 0, BD_ADDR_LEN); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[BtDisconnectedPro] g_bdAddr: "); CatBdAddr(&g_bdAddr); @@ -588,7 +589,7 @@ static void BtDisconnectedPro(void) // 蓝牙状态连接 static void ConnStateChanged(const bd_addr_t *bdAddr, profile_connect_state_t state) { - WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] state = 0x%X bdAddr: ", state); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] state = 0x%X bdAddr: ", state); CatBdAddr(bdAddr); switch (state) { @@ -1857,15 +1858,33 @@ int uapi_hfp_disconnect(void) { int ret; ret = hfp_hf_disconnect(&g_bdAddr); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[hfp_disconnect] ret:%d", ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x %02x %02x %02x g_bdAddr.type: %x\n", + g_bdAddr.addr[3], g_bdAddr.addr[2], g_bdAddr.addr[1], g_bdAddr.addr[0], g_bdAddr.type); /* 3 2 1 0 idx */ + + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[hfp_disconnect] ret:%X", ret); return ret; } int uapi_hfp_connect(void) { int ret; + if(false==bt_is_acl_connected(&g_bdAddr)) + { + ret= gap_connect_remote_device(&g_bdAddr); + + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[bt_is_acl_connected] ret:%X", ret); + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[bt_is_acl_connected is true"); + } + + ret = hfp_hf_connect(&g_bdAddr); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[hfp_connect_hfp] ret:%d", ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x %02x %02x %02x g_bdAddr.type: %x\n", + g_bdAddr.addr[3], g_bdAddr.addr[2], g_bdAddr.addr[1], g_bdAddr.addr[0], g_bdAddr.type); /* 3 2 1 0 idx */ + + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[uapi_hfp_connect] ret:%X", ret); return ret; } diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c index 4d8814b54..0225d4014 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c @@ -316,6 +316,8 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl Bleconnect = GAP_BLE_STATE_CONNECTED;//蓝牙已连接 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_CONNECTED!!! 0x%x\r\n",pair_state); + //连接上ble,此时如果没有连接上A2DP或者HFP则开启自动回连去连接 + } @@ -329,6 +331,11 @@ void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t s addr->addr[2],addr->addr[3],addr->addr[4],addr->addr[5],status); //if(get_notify_switch()) ble_ancs_client_cmd_setup_and_subscribe(g_ble_conn_id); + + gap_reconnect_media_device(&phone_addr); + + //if(!uapi_a2dp_snk_get_device_connect_state() || !uapi_hfp_connect_state()) + } @@ -1020,7 +1027,7 @@ static void svr_ble_bt_gatts_req_read_cb(uint8_t server_id, uint16_t conn_id, ga //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "svr_ble_bt_gatts_req_read_cb ret:is_long:%d 2ae2 %d read_cb_para->handle :%d",read_cb_para->is_long,data2ae2Cmd,read_cb_para->handle); if(read_cb_para->handle!=data2ae2Cmd) return; - + // if(flag==0) // ble_ancs_client_cmd_setup_and_subscribe(g_ble_conn_id); // else if(flag==1) -- 2.17.1