Android Wifi框架流程分析

本文详细分析了Android设备中用户开启Wi-Fi时的系统流程。从用户点击Wi-Fi按钮开始,涉及WifiEnabler的onSwitchChanged()方法,进一步调用WifiManager的setWifiEnabled接口,最终在WifiService中的setWifiEnabled函数实现。流程包括加载WIFI内核模块,启动wpa_supplicant服务,并由WifiMonitor监听wpa_supplicant的扫描事件,完成扫描后更新UI显示Wi-Fi列表。
摘要由CSDN通过智能技术生成

这里写图片描述

这里写图片描述

//在 SystemServer 启动的时候,启动WifiService调用关系如下:
public static void main(String[] args) {
        new SystemServer().run();
    }
private void run() {
……
startOtherServices();
……
}
startOtherServices(){
......
               mSystemServiceManager.startService(WIFI_P2P_SERVICE_CLASS);
                mSystemServiceManager.startService(WIFI_SERVICE_CLASS);
                mSystemServiceManager.startService(
                            "com.android.server.wifi.WifiScanningService");

                mSystemServiceManager.startService("com.android.server.wifi.RttService");
……
}

当用户按下 Wifi 按钮后, 在设置里调用 WifiEnabler 的 onSwitchChanged()方法, 在这个方法里又 调用 WifiManager 的 setWifiEnabled 接口函数,通过 AIDL,实际调用的是 WifiService (即WifiServiceImpl)的setWifiEnabled 函数:

//setWifiEnabled 函数:
// WifiServiceImpl.java
public synchronized boolean setWifiEnabled(boolean enable) {
    ……
    mWifiController.obtainMessage(CMD_WIFI_TOGGLED, mWifiIpoOff ? 1 : 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值