本文基于Android 13源码解读,对Wi-Fi状态机调用流程进行梳理,并结合Log进行分析,便于大家理解Wi-Fi模块调用流程。
梳理出Wi-Fi状态机共有如下几种状态:
mConnectableState
mConnectingOrConnectedState
mL2ConnectingState
mL2ConnectedState
mL3ProvisioningState
mL3ConnectedState
mRoamingState
mDisconnectedState
可以转化为如下思维导图:
Wi-Fi状态机初始状态为mDisconnectedState。
用户开启Wi-Fi后,首先进入DisconnectedState状态的父状态mConnectableState,再进入DisconnectedState状态。
开启Wi-Fi后状态机变化Log如下:
若在设置界面选择Wi-Fi热点或Wi-Fi自动连接开关后,则进入L2ConnectingState状态,其父状态为ConnectingOrConnectedState。