优化获取网络状态接口
authorluozheng <1732036298@qq.com>
Sun, 28 Sep 2025 07:32:26 +0000 (15:32 +0800)
committerluozheng <1732036298@qq.com>
Sun, 28 Sep 2025 07:32:26 +0000 (15:32 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp
code/sdk/zhihui/leiniao/imsl_ln/ln_api.c
code/sdk/zhihui/leiniao/ln_api_cpp/ln_api_interface.cpp
code/sdk/zhihui/leiniao/ln_api_cpp/ln_api_interface.h

index 900ac47..d69f3bd 100644 (file)
@@ -157,8 +157,6 @@ namespace OHOS
         bool GetQrcodeChecked();
         void SetQrcodeChecked(bool checked);
         bool getbind_status();
-
-        bool Get_is_ln_get_device_token_success();
         
         // 日程提醒处理函数
         void HandleScheduleReminder(const char* title, const char* content);
@@ -244,8 +242,6 @@ namespace OHOS
         bool is_all_services_ready = false;
         bool init_falg = false;
         bool bind_status = false;
-
-        int net_count = 0;
     };
 }
 
index 9874994..d4931b1 100644 (file)
@@ -33,7 +33,7 @@
 #include "AppViewIDs.h"
 #include "NativeRegisterManager.h"
 #include "graphic_service_wrapper.h"
- #define JUHEPINGTAI 1
+ #define JUHEPINGTAI 0
  #if JUHEPINGTAI
  #include "websocket_server_manager.h"
  #endif
             m_statusTimer = nullptr;
         }
     }
-    // 获取token是否有效 其实是是否有外网
-    bool ThunderBirdModel::Get_is_ln_get_device_token_success()
-    {
-        return get_is_ln_get_device_token_success();
-    }
     /**
      * @brief 状态管理回调处理
      */
 
         if(HasNetwork())
         {
-            if(get_is_ln_get_device_token_success() == 0)
-            {
-                do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_GET_DEVICE_TOKEN, NULL, 0);
-                // 重置网络计数
-                net_count = 0;
-            }
-            else
+            if(get_is_ln_get_device_network_success())
             {
                 if (init_falg == false) 
                 {
-                    // 有网之后需要延迟5s
-                    net_count ++;
-                    if(net_count < 5)
-                    {
-                        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有网之后需要延迟 %d", net_count);
-                        return;
-                    }
                     //发送获取绑定用户ID
                     do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_GET_USER_ID, NULL, 0);
                     // 获取到设备是未绑定状态,但是内部有绑定记录 需要恢复出厂
index b75e9ad..1d4356a 100644 (file)
@@ -640,12 +640,6 @@ namespace OHOS
     void ThunderBirdPresenter::UpdateQrcodeIfValid()
     {
 
-        // 不需要有网 小程序 也可以绑定
-        // if(ThunderBirdModel::GetInstance()->Get_is_ln_get_device_token_success() == false)
-        // {
-        //     return;
-        // }
-
         // 检查IMEI是否有效 并且 二维码是否有效更新过
         if (ThunderBirdModel::GetInstance()->IsIMEIValid() && ThunderBirdModel::GetInstance()->GetQrcodeChecked() == true) {
             return;
index 67861eb..d1a917b 100644 (file)
@@ -412,6 +412,17 @@ HTTPC_RESULT ln_http_prepare_auto(HttpClientData *clientData, int header_size, i
 /* ============================ WebSocket 业务消息 上层处理 ============================ */
 void ln_ws_process_message(const ws_data_msg_t *data_msg, ws_command_t type)
 {
+    if(type == WS_CMD_CONNECTED)
+    {
+        printf("[LN][WS] Processing WebSocket Connected event\n");
+        set_is_ln_get_device_network_success(1);
+    }
+    else
+    {
+        printf("[LN][WS] Processing WebSocket Disconnected event\n");
+        set_is_ln_get_device_network_success(0);
+    }
+
     if (!data_msg || !data_msg->raw_json)
     {
         printf("[WS] invalid data message\n");
@@ -1017,32 +1028,8 @@ static void ln_http_server_send_task(void const *arg)
         }
         if (mail.cmd == LN_HTTP_SERVICE_CMD_GET_DEVICE_TOKEN)
         {
-
-            #ifdef SKIP_LN_PROTOCOL_TEST
-            continue;
-            #endif
-            if(get_is_ln_get_device_token_success() == 1)
-            {
-                printf("设备Token已经获取\n");
-                continue;
-            }
             printf("LN_HTTP_SERVICE_CMD_GET_DEVICE_TOKEN:获取雷鸟设备Token\n");
-            uint32_t ret = ln_get_device_token_http(uapi_ln_get_device_id(), uapi_ln_get_device_iccid(), uapi_ln_get_device_model(), uapi_ln_get_device_version());
-            if (ret == ERRCODE_SUCC) 
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[LN_HTTP_SERVER_SEND_TASK] 获取雷鸟设备Token成功\n");
-                set_is_ln_get_device_token_success(1);
-                // ret = ln_ws_start(ln_ws_process_message);
-                if (ret != 0)
-                {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[LN_HTTP_SERVER_SEND_TASK] 启动WebSocket失败: %d\n", ret);
-                }
-            } 
-            else 
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[LN_HTTP_SERVER_SEND_TASK] 获取雷鸟设备Token失败\n");
-                set_is_ln_get_device_token_success(0);
-            }
+            ln_get_device_token_http(uapi_ln_get_device_id(), uapi_ln_get_device_iccid(), uapi_ln_get_device_model(), uapi_ln_get_device_version());
         }
         else if (mail.cmd == LN_HTTP_SERVICE_CMD_SPEECH_CHAT_STREAM)
         {
@@ -1213,6 +1200,7 @@ errcode_t uapi_ln_http_server_init(void)
         printf("create ln_send_service failed %d!\r\n", ret);
         return ERRCODE_FAIL;
     }
+    ln_ws_start(ln_ws_process_message);
 
     ln_init_required_dirs();
     ln_load_init_config();
index d957863..ecd7644 100644 (file)
@@ -40,14 +40,14 @@ int get_start_conversation_flag(void)
     return g_start_conversation_flag;
 }
 
-static int is_ln_get_device_token_success = 0;
-void set_is_ln_get_device_token_success(int val)
+static int is_ln_get_device_network_success = 0;
+void set_is_ln_get_device_network_success(int val)
 {
-    is_ln_get_device_token_success = val;
+    is_ln_get_device_network_success = val;
 }
-int get_is_ln_get_device_token_success(void)
+int get_is_ln_get_device_network_success(void)
 {
-    return is_ln_get_device_token_success;
+    return is_ln_get_device_network_success;
 }
 
 // 获取OTA升级完状态
index 92ddb40..5ec056b 100644 (file)
@@ -23,8 +23,10 @@ void set_start_conversation_flag(int flag);
 //获取开始对话标志:开始对话、结束对话、故事开始、故事结束
 int get_start_conversation_flag(void);
 
-void set_is_ln_get_device_token_success(int val);
-int get_is_ln_get_device_token_success(void);
+/* 设置是否设备是否真正有网络 */
+void set_is_ln_get_device_network_success(int val);
+/* 获取是否设备是否真正有网络 */
+int get_is_ln_get_device_network_success(void);
 
 /*
 ota升级状态