一.选网逻辑相关的代码路径:

        foundation\communication\wifi\wifi\services\wifi_standard\wifi_framework\wifi_manage\wifi_sta\network_select

                                                   

二.选网逻辑的入口点函数:

          

三. 选网逻辑的类图

       三个概念:

           网络选择器NetworkSelector   来选择网络

           过滤器:WifiFilter   过滤掉不符合要求的网络

           比较器:WifiComparator   给备选网络打分

         

         网络选择器可以包含过滤器、子网络选择器和打分器。子网选择器又可以包含自己的过滤器、子网选择器和打分器。是一个层次关系。以AutoConnectIntegrator为例说明:

                 { 
                       "name": "autoConnectIntegrator" ,
                       "filter": "(notHidden&&notSignalWooWeak)",
                       "subNetworkSelectors": [
                            { 
                                "name": "savedNetworkTracker" ,
                                "filter": "(savedWifiFilter&&notPassPoint&&notEphemeral&&enableWifi&&matchUserSelect)",
                                "subNetworkSelectors": [
                                          { "name": "hasInternetNetworkSelector" , "filter": "(hasInternet)"},
                                          { "name": "recoveryNetworkSelector" , "filter": "(recovery)"},
                                          { "name": "portalNetworkSelector" ,"filter": "(portalWifiFilter||maybePortal)&&notPoorPortal"},
                                          { "name": "noInternetNetworkSelector" ,"filter": "noInternet"},
                                          { "name": "blackListNetworkSelector" ,"filter": "isBlackList"}]},
                                          { "name": "suggestionNetworkTracker" ,"filter": "(suggestionNetworkWifiFilter&&enableWifi)"}
                                  ]
                          }

                     ]
               }

 四:网络选择器的重要代码摘录      

五.选网流程

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐