Android Wifi开发——网络评分(十一)

       在安卓 WiFi 框架中,有一套机制实现了对设备周围的热点在一定规则下进行打分,然后根据分数高低决定是否需要连接。这就是网络评分机制。

        在前面的文章《Android Wifi开发——扫描监听(七)》中,我们最后回调走到了 scanListener 的 onResults() 方法,而对网络的评分,肯定也是在扫描到网络后才会对网络进行评分。

一、扫描结果

        WifiConnectivityManager 之前提到过这个类,它是扫描服务相关的一个关键类,该类管理所有与连接性相关的扫描活动。当屏幕打开或关闭,WiFi连接或断开,或按需,启动扫描,并将扫描结果传递给 WifiNetworkSelector,让它建议连接到哪个网络。

1、扫描监听器

        扫描结束后会通过调用注册的 AllSingleScanListener 回调类的 onResults() 方法,将扫描结果往上传给应用层。而 AllSingleScanListener 正是继承了上面的 WifiScanner.ScanListener() 方法。

源码位置:/packages/modules/Wifi/service/java/com/android/server/wifi/WifiConnectivityManager.java

// 所有扫描结果监听器。
private class AllSingleScanListener implements WifiScanner.ScanListener {
    p

猜你喜欢

转载自blog.csdn.net/c19344881x/article/details/129933257