Android Wifi流程
作者:互联网
我试图跟踪wifi设置代码.我的目的是在将WIFI按钮切换为ON后知道从应用程序到内核层的流程.
我们转到Android的“设置”页面,然后切换WLAN(WIFI)按钮
你的wifi应该启用.
>我发现此页面对应于WifiSettings.java.在此文件中,当您将按钮从OFF切换为ON时:
private void updateWifiState(int state) {
getActivity().invalidateOptionsMenu();
switch (state) {
case WifiManager.WIFI_STATE_ENABLING:
addMessagePreference(R.string.wifi_starting);
break;
}
mLastInfo = null;
mLastState = null;
mScanner.pause();
}
将调用此函数.
>然后我去检查WifiManager.java.我发现:
/**
* Wi-Fi is currently being enabled. The state will change to
{@link#WIFI_STATE_ENABLED}
if it finishes successfully.
*
* @see #WIFI_STATE_CHANGED_ACTION
* @see #getWifiState()
*/
public static final int WIFI_STATE_ENABLING = 2;
但是,在此之后,我并没有真正理解如何深入挖掘流程.
解决方法:
您应该查看WifiEnabler.java,因为您提到的代码只显示了一些字符串.
在WifiEnabler :: onCheckChanged()中,您可以看到调用了mWifiManager.setWifiEnabled().
之后,您可以查看该目录中的WifiManager.java和其他相关文件.有一个状态机,你应该跟踪状态转换.
通常,Android使用wpa_supplicant,这几乎与Linux相同.配置文件位于/data/misc/wifi/wpa_supplicant.conf,由Android生成.切换wifi开关后,Android启动wpa_supplicant并与之通信. wpa_supplicant负责扫描并连接到wifi站.
标签:android,wifi,android-wireless 来源: https://codeday.me/bug/20190709/1414672.html