packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java
packages/modules/Wifi/framework/java/android/net/wifi/WifiManager.java
packages/modules/Wifi/service/java/com/android/server/wifi/WifiServiceImpl.java
packages/modules/Wifi/service/java/com/android/server/wifi/ConnectHelper.java
packages/modules/Wifi/service/java/com/android/server/wifi/ConcreteClientModeManager.java
packages/modules/Wifi/service/java/com/android/server/wifi/ClientModeImpl.java
packages/modules/Wifi/service/java/com/android/server/wifi/WifiNative.java
packages/modules/Wifi/service/java/com/android/server/wifi/SupplicantStaIfaceHal.java
packages/modules/Wifi/service/java/com/android/server/wifi/SupplicantStaNetworkHal.java
WifiSettings.java =>onSubmit(WifiDialog2 dialog):
-if (dialogMode == WifiConfigUiBase2.MODE_MODIFY)
--if (config == null)
Toast.makeText(getContext(), R.string.wifi_failed_save_message,Toast.LENGTH_SHORT).show();//config为null,弹出Toast
--else
mWifiManager.save(config, mSaveListener);//修改信息后,将信息进行保存
-else if (dialogMode == WifiConfigUiBase2.MODE_CONNECT || (dialogMode == WifiConfigUiBase2.MODE_VIEW && wifiEntry.canConnect()))
--if (config == null)
connect(wifiEntry, false /* editIfNoConfig */,false /* fullScreenEdit*/);
--else
mWifiManager.connect(config, new WifiConnectActionListener());//调用connect进行连接
-->WifiManager.java=>connect(@NonNull WifiConfiguration config, @Nullable ActionListener listener):connectInternal(config, WifiConfiguration.INVALID_NETWORK_ID, listener);
->connectInternal(@Nullable WifiConfiguration config, int networkId,@Nullable ActionListener listener):mService.connect(config, networkId, listenerProxy);
------>WifiServiceImpl.java=> connect(WifiConfiguration config, int netId, @Nullable IActionListener callback):
-mMakeBeforeBreakManager.stopAllSecondaryTransientClientModeManagers(() ->mConnectHelper.connectToNetwork(result, wrapper, uid));
-------->ConnectHelper.java=>connectToNetwork(@NonNull NetworkUpdateResult result,@NonNull ActionListenerWrapper wrapper,int callingUid):
-connectToNetwork(mActiveModeWarden.getPrimaryClientModeManager(), result, wrapper, callingUid);//mActiveModeWarden.getPrimaryClientModeManager()状态机获取当前状态
->connectToNetwork(@NonNull Clie