Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
mWifiManager.forget -> WiFiSettings.java //参数为当前选择forget的config的netid
sAsyncChannel.sendMessage -> 异步通道发送给WifiStateMachine,cmd是FORGET_NETWORK
processMessage -> WifiStateMachine.java //当前处于ConnectedState,调用父类的父类ConnectModeState
mWifiConfigStore.getWifiConfiguration //根据netid得到对应的config
mWifiConfigStore.canModifyNetwork //检查调用者是否有权限remove network
mWifiConfigStore.forgetNetwork ->
removeConfigAndSendBroadcastIfNeeded -> //执行清理操作
mConfiguredNetworks.remove //从ConfiguredNetworks中移除
mScanDetailCaches.remove
sendConfiguredNetworksChangedBroadcast //发广播wifi状态变化: WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION
mWifiNative.removeNetwork ->
&nbs
OS: Android 6.0
Kernel: 3.10.92
之前有分析过 无线网络配置的保存过程 ,这里看一下它的移除过程是怎样的,当选择界面的FORGET时,会触发以下流程调用。
onForget ->
forget ->mWifiManager.forget -> WiFiSettings.java //参数为当前选择forget的config的netid
sAsyncChannel.sendMessage -> 异步通道发送给WifiStateMachine,cmd是FORGET_NETWORK
processMessage -> WifiStateMachine.java //当前处于ConnectedState,调用父类的父类ConnectModeState
mWifiConfigStore.getWifiConfiguration //根据netid得到对应的config
mWifiConfigStore.canModifyNetwork //检查调用者是否有权限remove network
mWifiConfigStore.forgetNetwork ->
removeConfigAndSendBroadcastIfNeeded -> //执行清理操作
mConfiguredNetworks.remove //从ConfiguredNetworks中移除
mScanDetailCaches.remove
sendConfiguredNetworksChangedBroadcast //发广播wifi状态变化: WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION
mWifiNative.removeNetwork ->
&nbs