Android Wifi漫游连接序列
我正在维护一个与wifi网络相关的小应用程序。当手机连接到wifi网络时,它会测试互联网连接 在有两个相邻wifi网络(不同的SSID)的地方测试和使用应用程序时,覆盖范围略有重叠,HTC Desire运行Android 2.2.2,从wifi a移动到B时,断开和连接的顺序似乎是:Android Wifi漫游连接序列,android,wifi,roaming,Android,Wifi,Roaming,我正在维护一个与wifi网络相关的小应用程序。当手机连接到wifi网络时,它会测试互联网连接 在有两个相邻wifi网络(不同的SSID)的地方测试和使用应用程序时,覆盖范围略有重叠,HTC Desire运行Android 2.2.2,从wifi a移动到B时,断开和连接的顺序似乎是: 断开与wifi A的连接 连接到wifi B 现在,随着Fairphone运行4.2.2,顺序似乎是: 连接到wifi B 断开与wifi A的连接 这是否意味着与HTC Desire不同,Fairphone进行某
我问这个问题,因为如果我的观察是正确的,这对应用程序的行为有一些影响,即它不应该考虑最后的WiFi连接事件,而是检查WiFi连接的实际状态,不管最后一个事件是“连接”还是“断开”。控制漫游行为。你可以看看它在做什么
具体来说,为了回答您的问题,WLAN设备(在linux中)可以使用不同类型的驱动程序:- SoftMAC:MLME(媒体访问控制(MAC)子层管理实体)由软件管理
- FullMAC:MLME在硬件中进行管理
- 鉴定
- 取消认证
- 员工
- 解除关联
- 重新结合
在标准漫游中,发送到站点的数据包不会丢失,而是从一个AP转发到漫游AP,以便漫游站点接收数据包。根据您的观察,我认为您应该更改代码。一些疯狂的设备甚至可能有不止一个WiFi适配器,你的代码也会准备好的。我见过很多不同android手机的WiFi行为。不同品牌,不同版本的Android,不同的wifi芯片。这两者之间有很多不同之处。因此,虽然特定手机的wifi行为是可预测的,但在手机之间则不是。如果你的应用程序依赖于特定的wifi行为,我建议你用你的应用程序测试足够数量的手机。谢谢。正如Merlevede所建议的,我已经更改了代码,使其在wifi连接的实际状态下运行,而不是在最新wifi事件报告的状态下运行,因此无论设备的任何特定行为如何,它都能正常工作,并且我的应用程序的行为可以通过单元测试来覆盖:-)