diff --git a/wifi/base/inner_api/ienhance_service.h b/wifi/base/inner_api/ienhance_service.h index 37de35a7ea214f28e2da1f7eee041bf550e42ef4..ff980a68ce6c494ea6c5f95eaf98b39b8b69190b 100644 --- a/wifi/base/inner_api/ienhance_service.h +++ b/wifi/base/inner_api/ienhance_service.h @@ -328,6 +328,13 @@ public: * @return Errcode - operation result */ virtual ErrCode RegisterSensorEnhanceCallback(SensorEnhanceCallback callback) = 0; + + /** + * @Description Trigger Judge + * + * @return Errcode - operation result + */ + virtual ErrCode TriggerJudge() = 0; }; } // namespace Wifi } // namespace OHOS diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/network_select/BUILD.gn b/wifi/services/wifi_standard/wifi_framework/wifi_manage/network_select/BUILD.gn index 9b96e7b0276b38a23a2f88c2745331f2eb517d82..a99f3a976b3d3b1613568da2b418a02cd5b75aa5 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/network_select/BUILD.gn +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/network_select/BUILD.gn @@ -48,6 +48,9 @@ local_base_include_dirs = [ "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_network_stats", "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/network_black_list", "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage", + "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta", + "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_self_cure", + "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_scan", "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_native/common", "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_native/wifi_hal_interface", "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_native/client/idl_client", diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/network_select/network_selection_manager.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/network_select/network_selection_manager.cpp index ceb4aee451f31f078562d36e86db2b624237bd02..7f8290a040781488c6d3787eb61fa6059f598857 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/network_select/network_selection_manager.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/network_select/network_selection_manager.cpp @@ -20,6 +20,7 @@ #include "network_selection_utils.h" #include "wifi_common_util.h" #include "wifi_hisysevent.h" +#include "wifi_service_manager.h" namespace OHOS::Wifi { DEFINE_WIFILOG_LABEL("networkSelectionManager") @@ -54,6 +55,15 @@ bool NetworkSelectionManager::SelectNetwork(NetworkSelectionResult &networkSelec bool isSavedNetEmpty = false; std::string savedResult = GetSavedNetInfoForChr(networkCandidates, isSavedNetEmpty); + /* Trigger the network selection policy in different scenarios */ +#ifndef OHOS_ARCH_LITE + IEnhanceService *pEnhanceService = WifiServiceManager::GetInstance().GetEnhanceServiceInst(); + if (pEnhanceService != nullptr && !isSavedNetEmpty) { + ErrCode ret = pEnhanceService->TriggerJudge(); + WIFI_LOGI("%{public}s TriggerJudge ret %{public}d", __FUNCTION__, ret); + } +#endif + /* Traverse networkCandidates and reserve qualified networkCandidate */ TryNominate(networkCandidates, networkSelector);