WifiService的getWifiEnabledState方法解析

WifiService

1 位置 : frameworks\opt\net\wifi\service\java\com\android\server\wifi
实际工作交给WifiServiceImpl处理。

2 实现了 IWifiManager接口 。

getWifiEnabledState方法

WifiState 有4种状态:

 	public static final int WIFI_STATE_DISABLED = 1;
    public static final int WIFI_STATE_DISABLING = 0;
    public static final int WIFI_STATE_ENABLED = 3;
    public static final int WIFI_STATE_ENABLING = 2;
    public static final int WIFI_STATE_UNKNOWN = 4;

com.android.server.wifi.ClientModeImpl#mWifiState

mWifiState 的设置是在 : ClientModeImpl#setWifiStateForApiCalls
而只有
com.android.server.wifi.ClientModeManager#updateConnectModeState
调用 ClientModeImpl#setWifiStateForApiCalls 。

比如 WIFI_STATE_ENABLED,
只有在ClientModeManager 的 ConnectModeState 这个类调用
这个是状态机,那我们就来分析如何进入这个ConnectModeState状态的。
是在StartedState 收到 CMD_SWITCH_TO_CONNECT_MODE 之后进入ConnectModeState 状态,

CMD_SWITCH_TO_CONNECT_MODE 是哪里发来的?

是在com.android.server.wifi.ClientModeManager#setRole 这个方法。
那是哪里调用setRole呢?

这个值最终是持久化到 WifiSettingsStore 中的,只是代表客户端的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值