源代码
1. WifiManager.java:frameworks\base\wifi\java\android\net\wifi\
2. IWifiManager.aidl:frameworks\base\wifi\java\android\net\wifi\
3. WifiServiceImpl.java:frameworks\opt\net\wifi\service\java\com\android\server\wifi
4. WifiController.java:frameworks\opt\net\wifi\service\java\com\android\server\wifi
5. WiFiStateMachine.java:frameworks\opt\net\wifi\service\java\com\android\server\wifi
6. WifiNative.java:frameworks\opt\net\wifi\service\java\com\android\server\wifi
7. com_android_server_wifi_WifiNativie.cpp:frameworks\opt\net\wifi\service\jni
通常我们去打开关闭wifi,连接断开AP,获取wifi状态,都是通过WiFiManager的接口,使用WiFiManager简单,通过如下code调用:
WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
wifiManager.xxxxx();
然后通过wifiManager对象就可以调用相关接口了。已打开Wifi为例,追踪wifi的调用流程。先看WifiManager.java中的代码:
/**
* Enable or disable Wi-Fi.
* @param enabled {@code true} to enable, {@code false} to disable.
* @return {@code true} if the operation succeeds (or if the existing state
* is the same as the requested state).
*/
public boolean setWifiEnabled(boolean enabled) {
try {
return mService.setWifiEnabled(enabled);
} catch (RemoteException e) {
return false;
}
}
接口setWiFiEnabled为打开关闭wifi的公开函数。参数布尔值enabled若为true,则表示打开,否则为关闭。我们可以看出其实调用的mService对象的setWifiEnabled(enabled)函数,