首先从谷歌社区我们可以了解到相关的:https://source.android.google.cn/devices/tech/connect/wifi-sta-sta-concurrency?hl=zh-cn
下面记录下,以防止连接无法访问:
首先这个需要厂商去支持:设备必须支持以下功能才能实现 Wi-Fi STA/STA 并发:
Wi-Fi 芯片或固件必须支持两个并发 STA 连接。固件必须支持两种连接的所有通道和频段组合。为避免性能问题,我们建议使用支持 2x2+2x2 DBS 的 Wi-Fi 芯片。
设备必须支持供应商 HAL 版本 1.5中的以下 API
IWifiChip.setMultiStaPrimaryConnection()
IWifiChip.setMultiStaUseCase()
HAL Wi-Fi 接口组合必须有两个并发的 STA 接口,使用诸如[{STA} <= 2, …]之类的规范格式公开
除了上述之外,还有些细节的看谷歌社区
其次这是Android 12 上引入的,允许设备同时连接到两个 Wi-Fi 网络。
可选功能启用以下功能。
1. Make-before-break :设备在断开现有连接之前先连接到新的 Wi-Fi 网络。这会在 Wi-Fi 网络之间切换时实现更平滑的转换
配置:config_wifiMultiStaNetworkSwitchingMakeBeforeBreakEnabled
make-before-break功能允许设备连接到新的 Wi-Fi 网络,同时保持现有的 Wi-Fi 网络连接,只有在成功连接到新的 Wi-Fi 网络并可以访问互联网时才断开与旧网络的连接。make-before-break 用例解决了 Android 11 或更低版本中的以下问题,其中设备必须先断开与现有 Wi-Fi 网络的连接,然后才能连接到新网络(break-before-make)。
连接到新网络时,设备可能会发现它保存的 Wi-Fi 密码不正确,或者新网络无法访问互联网。这会迫使设备切换回旧网络,从而导致大量时间没有 Wi-Fi 连接。
旧网络突然断开,这意味着所有套接字都关闭了。应用程序通常不会对突然失去连接做出良好反应,这可能会导致用户在几秒钟内没有互联网连接,直到新连接完全建立。
默认网络更改两次,从旧的 Wi-Fi 网络更改为蜂窝网络,然后从蜂窝网络更改为新的 Wi-Fi 网络。这会导致应用对网络更改做出两次反应。该设备还必须花费很短的时间使用蜂窝数据。
make-before-break 流程仅用于由操作系统启动的自动 Wi-Fi 网络切换。用户启动的网络交换机使用传统的先断后合流程,即在连接新网络之前,之前的网络完全断开连接。在某些情况下,即使在操作系统启动的自动切换中也会使用先断后合流程,例如,在两个都配置为使用工厂 MAC 地址的网络之间切换时。
应用可以使用WifiManager#isMakeBeforeBreakWifiSwitchingSupported() API 检查设备是否支持此用例。
从这一段话,我们就大致知道,这个MBB(make-before-break)其实就是切换功能,而并不是我们说的并发,只是节省了之前Wi-Fi切流量再切回Wi-Fi的这段时间。
2. 仅本地和互联网并发连接:设备连接到仅本地网络,而不会中断设备的主要互联网提供连接。
配置:config_wifiMultiStaLocalOnlyConcurrencyEnabled
并发的仅限本地和互联网连接功能允许设备与主要的互联网提供网络同时连接到仅限本地的连接,例如与物联网设备的连接。此功能改善了直接连接到物联网设备(例如相机)时的用户体验,这可以通过 Android 10 中添加的WifiNetworkSpecifier API 实现。
在 Android 11 及更低版本中,设备在连接到 IoT 设备时会断开与主要 Wi-Fi 网络的连接,从而导致互联网连接中断(除非设备具有其他可用的传输类型,例如蜂窝数据)。
应用可以使用WifiManager#isStaConcurrencyForLocalOnlyConnectionsSupported() API 检查设备是否支持此功能。
3. 并发受限和互联网连接:设备连接到受限网络(仅适用于某些特权应用程序),而不会中断设备的主要互联网连接。
并发受限和互联网连接功能允许设备同时连接到用户的主要 Wi-Fi 网络和仅适用于选定应用程序的受限 Wi-Fi 网络。
应用可以使用WifiManager#isStaConcurrencyForRestrictedConnectionsSupported() API 检查设备是否支持此功能。
这个我没能理解是什么样的场景。
那总结下这个双Wi-Fi是个啥,就是针对三种场景,第三种未能理解。所述的也并不是并发,并发是同时多条链路去同时发送数据,而不是这种主Wi-Fi 无法上网的情况下,辅Wi-Fi可以上网则切换到辅Wi-Fi,如果主、辅都不行就切数据流量。