修改蓝牙调试窗口 修改支付宝广播开启位置 修改目标达成界面内存泄漏 1134/1 1134/head
authorhcj <1224667075@qq.com>
Wed, 9 Oct 2024 03:49:05 +0000 (11:49 +0800)
committerhcj <1224667075@qq.com>
Wed, 9 Oct 2024 03:49:05 +0000 (11:49 +0800)
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c
code/sdk/application/wearable/service/ble_service/bleservice/bleService.h
code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp
code/sdk/application/wearable/service/msg_center/src/notify/goal_notification.cpp

index db33303..5f07ed6 100644 (file)
@@ -8,6 +8,7 @@
 #include "AlipayMainView.h"\r
 #include "UiConfig.h"\r
 #include "alipay_feature.h"\r
+#include "custom_utils.h"\r
 \r
 namespace OHOS {\r
 #define ALIPAY_BIND_SUCCESS_RES_TIMER_LENGTH 3000\r
@@ -468,6 +469,11 @@ bool AlipayMainView::ChangeBindView(int16 thisView)
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindView");\r
     AlipayModel::GetInstance()->AlipayStartBind();\r
+\r
+    /**启动alipay蓝牙服务*/\r
+\r
+    start_alipay_ble_service();\r
+\r
     if (container[thisView] == nullptr) {\r
         alipayBind = new AlipayBind(presenter_);\r
         if (alipayBind == nullptr) {\r
index cc5a953..aade435 100644 (file)
@@ -60,8 +60,7 @@ void AlipayPresenter::OnStart()
     return;\r
     \r
     Presenter<AlipayMainView>::OnStart();\r
-    /**启动alipay蓝牙服务*/\r
-    start_alipay_ble_service();\r
+ \r
     /* -------------------------------- 设置支付宝界面常亮 ------------------------------- */\r
     alipayMode_->AlipayScreenControl(true);\r
     /* -------------------------------------------------------------------------- */\r
index ae376d0..0a9b3c1 100644 (file)
@@ -1143,6 +1143,7 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState)
         PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_CONNECTED);\r
         GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionSuss, *bdAddr));\r
         SendMsgToUIService(EARPHONE_CONNECTED_TO_UI, 0, nullptr, 0);\r
+         uapi_dev_runtime_set_earphone_connect_stat(1);\r
     }\r
 \r
     if (connState == PROFILE_STATE_DISCONNECTED) {\r
@@ -1154,7 +1155,9 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState)
         if (!ret) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "a2dp disc: gap_br_set_bt_scan_mode ret = 0x%x", ret);\r
         }\r
+        uapi_dev_runtime_set_earphone_connect_stat(0);\r
     }\r
+   \r
 }\r
 \r
 static void A2dpSrcPlayingStateChanged(bd_addr_t *bdAddr, int playState)\r
@@ -1208,8 +1211,9 @@ static void BleAdvStopCallback(uint8_t advId, adv_status_t status)
 static void BleAdvTerminateCallback(uint8_t advId, adv_status_t status)\r
 {\r
     if (g_sample_adv_id == advId) {\r
-        WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BleAdvTerminateCallback advId: %d, status:%d\n", advId, status);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "?????????? BleAdvTerminateCallback advId: %d, status:%d\n", advId, status);\r
         BluetoothModel::GetInstance()->SetAdvStartState(false);\r
+\r
         // 此处开广播是为了实验室测试需要,客户需要自己修改\r
         BleAdvStart();\r
     }\r
@@ -1844,10 +1848,16 @@ int uapi_disconnect_remote_device()
 \r
 int uapi_get_acl_connect_state()\r
 {\r
-    if( ALC_State_flag==GAP_ACL_STATE_CONNECTED )//|| ALC_State_flag ==GAP_ACL_STATE_LE_DISCONNECTED)\r
-    return 1;\r
+    bd_addr_t bdaddr={0};\r
+    uapi_get_br_address(&bdaddr);\r
+    if (bt_is_acl_connected(&bdaddr))\r
+    {\r
+        return 1;\r
+    }\r
     else\r
-    return 0;\r
+    {\r
+        return 0;\r
+    }\r
 }\r
 \r
 int uapi_set_acl_connect_hfp()\r
index bbb73ee..de9ba2a 100644 (file)
@@ -230,7 +230,21 @@ void br_adv_stop(void)
 {\r
     gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
 }\r
+//留档保存,方便后面查看此数据是否正确\r
+static uint8_t save_adv_data[BLE_ADV_DATA_MAX_LENGTH] = {0};\r
 \r
+void get_adv_data(char *data)\r
+{\r
+    uint32_t data_len=0;\r
+    for(int i=0;i<BLE_ADV_DATA_MAX_LENGTH;i++)\r
+    {\r
+        char UintBUF[3]={0};\r
+        sprintf(UintBUF,"%02X",save_adv_data[i]);\r
+        memcpy_s(data+data_len,2,UintBUF,2);\r
+        data_len+=2;\r
+    }\r
+\r
+}\r
 \r
 /* adapt ios adv data. *///设置广播和扫描数据\r
 static void svr_ble_adv_data_set(int adv_id)\r
@@ -322,11 +336,15 @@ static void svr_ble_adv_data_set(int adv_id)
     if (scan_data_len > BLE_SCAN_DATA_LENTH){\r
         scan_data_len = BLE_SCAN_DATA_LENTH;\r
     }\r
+    //\r
+    memcpy_s(save_adv_data,BLE_ADV_DATA_MAX_LENGTH,adv_data,BLE_ADV_DATA_MAX_LENGTH);\r
+    \r
     adv_data_info.scan_rsp_data = scan_data;//扫描数据\r
     adv_data_info.scan_rsp_length = scan_data_len;//扫描长度\r
     adv_data_info.adv_data = adv_data;//广播数据 \r
     adv_data_info.adv_length = adv_data_len;//广播长度\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "adv_data_info.adv_length:%u. scan_data_len:%d\r\n", adv_data_len,scan_data_len);\r
+\r
     gap_ble_set_adv_data(adv_id, &adv_data_info);\r
 \r
     return;\r
@@ -1359,7 +1377,6 @@ static void svr_ble_adv_stop_cb(uint8_t adv_id, adv_status_t status)
     if (adv_id == BLE_ADV_ID) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"svr_ble_adv_stop_cb adv_id: %d, status:%d\n", adv_id, status);\r
         ble_adv_start=0;\r
-\r
     }\r
 }\r
 \r
index 5d95b98..0a7c191 100644 (file)
@@ -46,7 +46,7 @@
 #include <cerrno>
 #include "bleService.h"
 #include "sleep/include/SleepModel.h"
-
+#include "BluetoothModel.h"
 namespace OHOS
 {
 
@@ -126,24 +126,33 @@ namespace OHOS
         return (str);
     }
 
+     static std::string getCurrentWatchadvdata()
+    {
+        uint32_t len = 64;
+        char *buf_advdata = (char *)malloc(len);
+        if (buf_advdata == NULL)
+            return "";
+        get_adv_data(buf_advdata);
+
+        std::string str = std::string(buf_advdata);
+        printf("%s | %s \n", buf_advdata, str.c_str());
+
+        free(buf_advdata);
+        return (str);
+    }
+
+    
+
     std::string DebugOutputViewEventListener::get_bt_runtime_status_t(void)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DebugOutputViewEventListener::get_bt_runtime_status_t");
         std::string result = "bt_powerOn:" + std::to_string(uapi_dev_runtime_get_bt_powerstat()) + " ";
         result += "bt_ble_connectstat:" + std::to_string(get_ble_connect()) + " ";
-        result += "bt_br_connectstat:" + std::to_string(uapi_dev_runtime_get_br_connect_stat()) + " ";
+        result += "bt_br_connectstat:" + std::to_string(uapi_get_acl_connect_state()) + " ";
         result += "bt_earphone_connectstat:" + std::to_string(uapi_dev_runtime_get_earphone_connect_stat()) + " ";
-        result += "android_app_connected:" + std::to_string(uapi_dev_runtime_get_android_connection_status()) + " ";
-        result += "ble_kumi_service_handler: ";
-        result += "ble_factory_service_handler: ";
-        result += "ble_alipay_service_handler: ";
-        result += "ble_hrs_service_handler: ";
-        result += "ble_hid_service_handler: ";
-        result += "ble_ancs_client_id:" + std::to_string(uapi_dev_runtime_get_ancs_clientid()) + " ";
-        result += "ad2p_service_handler: ";
-        result += "spp_service_handler: ";
-        result += "hfp_service_handler: ";
+        result += "android_app_connected:" + std::to_string(get_ble_pair()) + " ";
         result += "localAddress:" + (getCurrentWatchMacAddress()) + " ";
+result += "advdata:" + (getCurrentWatchadvdata()) + " ";
         result += "ble广播状态:" + std::to_string(get_ble_adv_status());
 
         // 蓝牙ble广播开关,基础信息如,地址,广播状态
index 7f8d745..49a4610 100644 (file)
@@ -65,11 +65,17 @@ namespace OHOS
         }
         if(imageAnimator)
         {
-          
+            imageAnimator->Stop();
+            FreeImageInfoArray(winimageInfos, winbasePath.c_str(), 94);
             delete imageAnimator;
             imageAnimator = nullptr;
         }
-
+         if(labelgettag)
+        {
+          
+            delete labelgettag;
+            labelgettag = nullptr;
+        }
 
         RootView::GetInstance()->Remove(getView);