WIFI热点是用软件实现AP的功能,让你的移动设备可以作为一个路由,让别的站点链接,事实上需要硬件以及驱动的支持才能真正的实现这个功能。
在android系统的设置中会有如下界面:
主要的开关代码在设置模块中:
Packages/apps/Settings/src/com/android/settings/TetherSettings.java
|----private void startTethering()
| |-----mWifiApEnabler.setSoftapEnabled(true);
Packages/apps/Settings/src/com/android/settings/wifi/WifiApEnabler.java
|----public void setSoftapEnabled (Booleanenable)
| |-----mWifiManager.setWifiApEnabled(null,enable);
在WifiApEnabler.java中调用了WifiManager.java的setWifiApEnabled()函数,即代码走到了框架层。
frameworks/base/wifi/java/android/net/wifi/WifiManager.java
|----public booleansetWifiApEnabled(WifiConfiguration wifiConfig, boolean enabled)
| |----mService.setWifiApEnabled(wifiConfig, enabled);
IWifiManager.aidl
|----void setWifiApEnabled(WifiConfigurationwifiConfig, boolean enable);
frameworks/base/services/java/com/android/server/WifiService.java
|----public void setWifiApEnabled(WifiConfigurationwifiConfig, boolean enabled)
| |----mWifiController.obtainMessage(CMD_SET_AP, enabled ? 1:0,0,wificonfig ).sendToTarget();
frameworks/base/services/java/com/android