WifiMonitor解读

一句话总结
WifiMonitor 负责从 wpa_supplicant 接收上报事件并通知 framework 进行相应处理

WifiMonitor 维护一个 mMonitoringMap ,保存的是当前处于 monitoring 状态的 iface
WifiMonitor 有一些 startMonitoring、 stopMonitoring 的操作,本质就是在操作这个 map

private final Map<String, Boolean> mMonitoringMap = new HashMap<>();

同时,WifiMonitor 也维护一个 mHandlerMap ,表里是 iface 对应的 handler
WifiMonitor 通过 registerHandler 和 deregisterHandler 操作为 iface 绑定用于消息发送和处理的handler
这两个方法的实质就是操作这个 map

private final Map<String, SparseArray<Set<Handler>>> mHandlerMap = new HashMap<>();

WifiMonitor 有一些 broadcast event 方法,HAL层通过实例化 WifiMonitor 对象并调用这些方法去告知framework层 WPAS 发生了哪些事件

broadcast event 方法本质上是以 mHandlerMap 中的 handler 为target发送消息

public void broadcastWpsSuccessEvent(String iface) {
        sendMessage(iface, WPS_SUCCESS_EVENT);
    }

ClientModeImpl 获取到实例化的 WifiMonitor 对象 并 registerHandler
说明最终的消息处理是在 ClientModeImpl 进行的

至于HAL层怎么调用 WifiMonitor 的,后面再看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值