增加 连接状态改变
authorhcj <1224667075@qq.com>
Sat, 20 Jul 2024 01:47:22 +0000 (09:47 +0800)
committerhcj <1224667075@qq.com>
Sat, 20 Jul 2024 01:47:22 +0000 (09:47 +0800)
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.h

index 83b267b..f7935fd 100644 (file)
@@ -36,7 +36,8 @@
 #include "custom_runtime.h"\r
 #include "bleService.h"\r
 //#include "hfp_hf_service.h"\r
-\r
+#include "ui_service.h"\r
+#include "PhoneService.h"\r
 #ifdef SUPPORT_AT_OHOSFWK\r
 #include "BluetoothWrapper.h"\r
 #endif\r
@@ -197,11 +198,12 @@ void bluetooth_enable_all(void)
 \r
         errcode_t ret;\r
         // 设置自动回连,ios一键双连依赖此配置\r
-        bts_feature_t bts_feature = { 0 };\r
-        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
+        // bts_feature_t bts_feature = { 0 };\r
+        // bts_feature.bt_auto_reconnect_closed = 1;\r
+        // ret = bts_set_features(&bts_feature);\r
+\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
         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
@@ -1276,13 +1278,13 @@ static errcode_t BtA2dpSnkStartAcceptTimer(void)
 static int32_t BtA2dpSnkAudioCreate()\r
 {\r
 #if MEDIA_A2DP_SNK_INTERFACE\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "audioFormat %d channelCount %d sampleRate %d \n",\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "audioFormat %d channelCount %d sampleRate %d \n",\r
         g_audio_format_config.audioFormat, g_audio_format_config.channelCount, g_audio_format_config.sampleRate);\r
 \r
     int32_t ret = AudioManagerA2dpSinkSetParam(g_audio_format_config);\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "AudioManagerA2dpSinkSetParam ret %x\n", ret);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AudioManagerA2dpSinkSetParam ret %x\n", ret);\r
     ret = AudioManagerA2dpSinkCreate();\r
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "AudioManagerA2dpSinkCreate ret %x\n", ret);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AudioManagerA2dpSinkCreate ret %x\n", ret);\r
 #endif\r
     /* 起定时器接受音乐开始请求 */\r
     (void)BtA2dpSnkStartAcceptTimer();\r
@@ -1304,6 +1306,22 @@ static void BtA2dpSnkConnectStateChangedCb(bd_addr_t *bd_addr, int conn_state)
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x conn_state: %x\n",\r
         bd_addr->addr[3], bd_addr->addr[2], bd_addr->addr[1], bd_addr->addr[0], conn_state); /* 3 2 1 0 idx */\r
      (void)memcpy_s(&g_bd_addr, sizeof(bd_addr_t), bd_addr, sizeof(bd_addr_t));\r
+    if(conn_state==PROFILE_STATE_DISCONNECTING || conn_state==PROFILE_STATE_DISCONNECTED)\r
+    {\r
+        if(0==uapi_a2dp_snk_get_device_connect_state() && 0==uapi_hfp_connect_state())\r
+        {\r
+            SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);\r
+            SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
+        }\r
+    }\r
+    else if (conn_state==PROFILE_STATE_CONNECTING || conn_state==PROFILE_STATE_CONNECTED)\r
+    {\r
+        SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0);\r
+        SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
+    }\r
+    \r
+    \r
+   \r
     \r
 }\r
 \r
index 9c1b0f1..f7e132c 100644 (file)
 #include "ui_service.h"
 #include "msg_center_msg.h"
 #include "cat1_server_hal.h"
-
+#include "BluetoothModel.h"
 #ifdef __cplusplus
 extern "C" {
 #endif
-
+#include "bleService.h"
 #define CALL_LOG_PATH "/user/userdata/calllog.bin"
 #define CALL_TMP_LOG_PATH "/user/userdata/calltmplog.bin"
 #define CALL_LOG_DIR "/user/userdata"
@@ -608,8 +608,12 @@ static void ConnStateChanged(const bd_addr_t *bdAddr, profile_connect_state_t st
         case PROFILE_STATE_DISCONNECTED: // 蓝牙断开连接
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT disconnected");
             BtDisconnectedPro();
-            SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);
-            SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);
+            if(0==OHOS::uapi_a2dp_snk_get_device_connect_state() && 0==uapi_hfp_connect_state())
+            {
+                SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);
+                SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);
+            }
+           
             break;
         default:
             break;
@@ -1868,9 +1872,11 @@ int uapi_hfp_disconnect(void)
 int uapi_hfp_connect(void)
 {
     int ret;
-    if(false==bt_is_acl_connected(&g_bdAddr))
+     bd_addr_t bdaddr={0};
+    get_phone_addr(&bdaddr);
+    if(false==bt_is_acl_connected(&bdaddr))
     {
-        ret= gap_connect_remote_device(&g_bdAddr);
+        ret= gap_connect_remote_device(&bdaddr);
         
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[bt_is_acl_connected] ret:%X", ret);
     }
@@ -1878,9 +1884,9 @@ int uapi_hfp_connect(void)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[bt_is_acl_connected is true");
     }
-
+   
     
-    ret = hfp_hf_connect(&g_bdAddr);
+    ret = hfp_hf_connect(&bdaddr);
      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 */
 
index 1494c0c..7dbea44 100644 (file)
@@ -74,6 +74,16 @@ extern "C" {
 #include <dirent.h>
 #include <ppg_service.h>
 
+void ble_connect_ok(void)
+{
+    SendMsgToUIService(PHONE_CONNECTED_TO_UI, 0, nullptr, 0);
+}
+
+void ble_disconnect_ok(void)
+{
+    SendMsgToUIService(PHONE_DISCONNECTED_TO_UI, 0, nullptr, 0);
+}
+
 
 
 
@@ -1484,7 +1494,7 @@ void Set_heart_cmd(msg_get_heart_set_param_info_t *data)
     {
         printf("set_condigData_Int data->max_min %d\r\n",data->max_min);
 
-        p_ConfigModel->set_condigData_Bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,data->max_min);
+        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,data->max_min);
         p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE,data->heart);
     }
    
@@ -1497,7 +1507,7 @@ void Get_heart_cmd(msg_get_heart_set_param_info_t *data)
     
     data->frequence = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED);
     data->remind_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND);
-    data->max_min= p_ConfigModel->get_configData_bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN);
+    data->max_min= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN);
     printf("Get_heart_cmd data->max_min %d\r\n",data->max_min);
     data->heart = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE);
   
index 7394c78..6a75ac2 100644 (file)
@@ -322,6 +322,11 @@ void ble_add_message_index(uint32_t old_index);
 
 uint32_t ble_get_message_index(void);
 
+///////////////////////服务状态////////////////////////////
+void ble_connect_ok(void);
+
+void ble_disconnect_ok(void);
+
 #ifdef __cplusplus
 #if __cplusplus
 }