Android WIFI 无缝切换 小结

最近在做一个项目,是一个公司的无线系统,包括网络配置,服务器端,PC客户端和ANdroid客户端几个部分。

我主要是是在前人的基础上负责android端程序的编写。

其中有一条需求是,在同一个ssid下不同bssid的无缝切换。

这个问题困扰了很久,知道现在也没有很好的解决。。

拿到手的思路很简单,当达到切换条件后,断开当前连接AP,然后连接新的AP,然后进行重新认证。。目前主体思路也还是这样没变

第一个版本是监听系统的rssi_changed_action广播,比较当前连接的BSSID的RSSI值与相同SSID的最强信号,如果相差达到一定阈值,马上进行切换动作;

用了一段时间后,发现这个系统广播非常不稳定,不会每隔几秒就发一次什么的,于是在第二个版本中换用了scanresult_avaible_action这个广播,因为发现切换动作并不依赖某个特定广播,而且scan_action相比较第一版的广播稳定很多,基本上每隔3S就发一次。。

但在拔掉某个AP的测试环境下,时延还是很严重,于是就有了第三个版本,在监听以上两个广播的基础上,加上了电池电量变化广播和每隔一秒发送一次的系统时钟广播,这两个发送的频率更高。

 

在现有情况下,感觉系统还不是很稳定,时延有时还是会比较大。

晚上研究无线协议,找到一个802.11r,快速漫游协议。。这两天好好研究下,以及该协议在Android平台的实现现状。。

附上一个android社区对该协议的讨论:http://code.google.com/p/android/issues/detail?id=17972

Android WIFI 无缝切换 小结

上一篇:对Socket CAN的理解(3)——【Socket CAN发送数据流程】


下一篇:阿里云EMR Remote Shuffle Service在小米的实践,以及开源