其他分享
首页 > 其他分享> > Android Wifi流程

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