Android 8.1 Settings 的热点源码分析

          最近一段时间研究了一下Settings中的热点功能实现,以下是我的一点心得,有不对的地方欢迎指点。

          它主要涉及的类有TetherSettings.java 、WifiApEnabler.java、WifiStateMachine.java以及它的布局文件tether_prefs.xml

首先从布局文件tether_prefs.xml分析

Android 8.1 Settings 的热点源码分析

            key="enable_wifi_ap"就是代表热点的值,根据key值我们转到布局文件所在的类TetherSettings.java。

加载布局文件

Android 8.1 Settings 的热点源码分析

初始化

Android 8.1 Settings 的热点源码分析

继续跟踪mWifiApEnabler,监听改变

Android 8.1 Settings 的热点源码分析

继续跟踪,热点状态改变

Android 8.1 Settings 的热点源码分析

Android 8.1 Settings 的热点源码分析

热点状态改变会发送广播,告诉系统热点的状态

Android 8.1 Settings 的热点源码分析

Android 8.1 Settings 的热点源码分析

Android 8.1 Settings 的热点源码分析

继续跟踪,发现状态改变的显示信息在WifiApEnabler.java

Android 8.1 Settings 的热点源码分析

继续跟踪

Android 8.1 Settings 的热点源码分析

Android 8.1 Settings 的热点源码分析

有接收就有发送,发送广播的是WifiStateMachine.java,它在frameworks目录下

Android 8.1 Settings 的热点源码分析

继续跟踪,最后是在enter()方法中调用的。