我是靠谱客的博主 怕黑香烟,最近开发中收集的这篇文章主要介绍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 WifiSettings页面WIFI状态更新过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部