我是靠谱客的博主 怕黑香烟,这篇文章主要介绍Android WifiSettings页面WIFI状态更新过程,现在分享给大家,希望可以做个参考。

我们在WiFiSettings界面连接WiFi的时候会看到WiFi Preference的summary状态会从正在连接切换到获取ip再切换到已连接的状态这一篇就分析状态更新过程

一、 WifiTracker.java

我们知道WifiSettings是监听了WifiTracker onAccessPointsChanged()来刷新状态的。我们先分析下哪里调用了onAccessPointsChanged()

再看下哪里调用了conditionallyNotifyListeners()。

1.1 updateAccessPoints ()

看下哪边会调用

这里总结一下:下面几个条件会刷新页面状态:

wifiSettings onStart回调需要更新界面的时候

广播接收到WifiManager.SCAN_RESULTS_AVAILABLE_ACTION

广播接收到WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION

广播接收到WifiManager.LINK_CONFIGURATION_CHANGED_ACTION

广播接收到WifiManager.NETWORK_STATE_CHANGED_ACTION(连接过程中的网络变化就是接收这个广播)

1.2 updateNetworkInfo ()

看下哪里调用了

这里总结一下:

当接收到下面两条广播会刷新页面状态。

WifiManager.NETWORK_STATE_CHANGED_ACTION

WifiManager.RSSI_CHANGED_ACTION

1.3 clearAccessPointsAndConditionallyUpdate()

这个方法是 WiFi关闭的时候会调用。

二、WifiSettings.java

这个方法的注释说命令列表已更新,需要调用getAccessPoints来获取最新信息。我们就从这个方法开始向上和向下分析刷新的流程。

这个方法最后会调用preference.refresh()刷新状态。我们进入AccessPointPreference中去看下refresh()

三、AccessPointPreference.java

从这边可以看到summary是从accessPoint中获取的。forSavedNetworks是表示是否是已保存网络界面,这里调用的是AccessPoint的getSettingsSummary

上面方法执行的就是刷新页面的文字状态,过程到这里就结束了。

最后

以上就是怕黑香烟最近收集整理的关于Android WifiSettings页面WIFI状态更新过程的全部内容,更多相关Android内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(170)

评论列表共有 0 条评论

立即
投稿
返回
顶部