diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_state_machine.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_state_machine.cpp index 4b1b1963737e8ab0ef8098e56ee6247c5430017f..c85639feb7160735beb2b8044415f009ad32c329 100755 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_state_machine.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_state_machine.cpp @@ -5328,6 +5328,7 @@ void StaStateMachine::HandleInternetAccessChanged(SystemNetWorkState internetAcc if (internetAccessStatus == SystemNetWorkState::NETWORK_NOTWORKING && lastInternetIconStatus_ == SystemNetWorkState::NETWORK_IS_WORKING) { noInternetAccessCnt_++; + WriteInternetAccessHisysevent(noInternetAccessCnt_, lastInternetIconStatus_); if (noInternetAccessCnt_ < MAX_NO_INTERNET_CNT) { StopTimer(CMD_NO_INTERNET_TIMEOUT); StartTimer(CMD_NO_INTERNET_TIMEOUT, STA_NO_INTERNET_TIMEOUT); diff --git a/wifi/utils/inc/wifi_hisysevent.h b/wifi/utils/inc/wifi_hisysevent.h index ce27e938e7613aa65a9f330047380068cd656c0d..3a49fc71f9d18cec10477451d54bd46d375a0296 100644 --- a/wifi/utils/inc/wifi_hisysevent.h +++ b/wifi/utils/inc/wifi_hisysevent.h @@ -236,6 +236,8 @@ void WriteAutoSelectHiSysEvent(int selectType, const std::string &selectedInfo, void WriteDhcpInfoHiSysEvent(const IpInfo &ipInfo, const IpV6Info &ipv6Info); void WriteIodHiSysEvent(const IodStatisticInfo &iodStatisticInfo); + +void WriteInternetAccessHisysevent(int32_t noInternetCnt, int32_t lastStatus); } // namespace Wifi } // namespace OHOS #endif diff --git a/wifi/utils/src/wifi_hisysevent.cpp b/wifi/utils/src/wifi_hisysevent.cpp index 36707621c08d1acfdd4abfb71538c6ba71506346..4c0cfc02dc5f6576cd39cb7e6019b22f7470cdeb 100644 --- a/wifi/utils/src/wifi_hisysevent.cpp +++ b/wifi/utils/src/wifi_hisysevent.cpp @@ -985,5 +985,24 @@ void WriteIodHiSysEvent(const IodStatisticInfo &iodStatisticInfo) free(jsonStr); cJSON_Delete(root); } + +void WriteInternetAccessHisysevent(int32_t noInternetCnt, int32_t lastStatus) +{ + cJSON *root = cJSON_CreateObject(); + if (root == nullptr) { + WIFI_LOGE("Failed to create cJSON object"); + return; + } + cJSON_AddNumberToObject(root, "noInternetAccessCnt", noInternetCnt); + cJSON_AddNumberToObject(root, "lastInternetIconStatus", lastStatus); + char *jsonStr = cJSON_PrintUnformatted(root); + if (jsonStr == nullptr) { + cJSON_Delete(root); + return; + } + WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "INTERNET_ACCESS_STATUS", "EVENT_VALUE", std::string(jsonStr)); + free(jsonStr); + cJSON_Delete(root); +} } // namespace Wifi } // namespace OHOS \ No newline at end of file