Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Concurrencia Wi-Fi STA / STA

Android 12 presenta la concurrencia Wi-Fi STA / STA, que permite que los dispositivos se conecten a dos redes Wi-Fi al mismo tiempo. Esta característica opcional habilita las siguientes funciones.

  • Hacer sin punto muerto: El dispositivo se conecta a una nueva red Wi-Fi antes de romper la conexión existente. Esto da como resultado transiciones más suaves al cambiar entre redes Wi-Fi
  • Sólo local y conexión a Internet concurrente: El dispositivo se conecta a un sólo local a la red sin interrumpir la conexión principal de Internet que proporcionan del dispositivo.
  • Concurrente restringido y conexión a Internet: el dispositivo se conecta a una red restringida (disponible sólo para ciertas aplicaciones privilegiadas) sin interrumpir la conexión principal de Internet que proporcionan del dispositivo.

Esta página describe el comportamiento del dispositivo cuando esta función está habilitada y los detalles de implementación para los fabricantes y proveedores de dispositivos.

Implementación

Los dispositivos deben admitir lo siguiente para implementar la concurrencia Wi-Fi STA / STA:

  • El chip o firmware de Wi-Fi debe admitir dos conexiones STA simultáneas. El firmware debe admitir todas las combinaciones de canales y bandas para ambas conexiones. Para evitar problemas de rendimiento, recomendamos utilizar un chip Wi-Fi compatible con 2x2 + 2x2 DBS.

  • El dispositivo debe ser compatible con las siguientes API en proveedor HAL versión 1.5

    • IWifiChip.setMultiStaPrimaryConnection()
    • IWifiChip.setMultiStaUseCase()
  • La combinación de interfaz HAL Wi-Fi debe tener dos interfaces STA concurrentes expuestas utilizando un formato specifaction como [{STA} <= 2, ...] . Para obtener más información, consulte Wi-Fi concurrencia multi-interfaz .

Si se cumplen esos requisitos previos, implemente la concurrencia Wi-Fi STA / STA haciendo lo siguiente:

  1. Habilitar una o más funciones de forma individual utilizando superposiciones de recursos en tiempo de ejecución (desactivado por defecto).

    • Hacer sin punto muerto: config_wifiMultiStaNetworkSwitchingMakeBeforeBreakEnabled
    • Concurrente sólo local y la conexión a Internet: config_wifiMultiStaLocalOnlyConcurrencyEnabled
    • Concurrente restringida y conexión a Internet: config_wifiMultiStaRestrictedConcurrencyEnabled
  2. Valide cada implementación como se describe en sus respectivas secciones a continuación.

Para un mejor soporte Wi-Fi STA / STA concurrencia, se recomienda que los marcos personalizados OEM y aplicaciones utilizan el NetworkCallback#onCapabilitiesChanged() método en lugar de WifiManager#getConnectionInfo() , que sólo devuelve WifiInfo para una sola red y está desfasada y en Android 12 . para obtener más información, consulte la red Wi-Fi Solicitud API para conectividad peer-to-peer .

Hacer antes de romper

La función de conmutación previa a la ruptura permite que los dispositivos connnect a una nueva red Wi-Fi mientras se mantiene la conexión de red Wi-Fi existente, solamente desconectarse de la red antigua cuando se conecta con éxito a la nueva red Wi-Fi y tiene acceso a Internet.

El caso de uso de hacer antes de romper aborda los siguientes problemas en Android 11 o versiones anteriores, donde el dispositivo debe desconectarse de la red Wi-Fi existente antes de conectarse a una nueva red (romper antes de hacer).

  • Al conectarse a una nueva red, el dispositivo puede descubrir que tiene una contraseña de Wi-Fi incorrecta guardada o que la nueva red no tiene acceso a Internet. Esto obliga al dispositivo a volver a la red anterior, lo que lleva a una cantidad significativa de tiempo sin conectividad Wi-Fi.

  • La antigua red se desconecta abruptamente, lo que significa que todos los enchufes se cierran. Las aplicaciones a menudo no reaccionan bien a una pérdida repentina de conectividad y esto puede hacer que el usuario experimente unos segundos sin conexión a Internet hasta que la nueva conexión esté completamente establecida.

  • La red predeterminada cambia dos veces, de la antigua red Wi-Fi a celular, luego de celular a la nueva red Wi-Fi. Esto hace que las aplicaciones reaccionen dos veces a los cambios de red. El dispositivo también debe pasar un corto período de tiempo utilizando datos móviles.

El flujo de hacer antes de romper solo se usa para los conmutadores de red Wi-Fi automáticos iniciados por el sistema operativo. Los conmutadores de red iniciados por el usuario utilizan el flujo heredado de romper antes de hacer, donde la red anterior está completamente desconectada antes de que se conecte la nueva red. En ciertos casos, el flujo romper antes de hacer se usa incluso en conmutaciones automáticas iniciadas por el sistema operativo, por ejemplo, cuando se conmuta entre dos redes, ambas configuradas para usar la dirección MAC de fábrica.

Aplicaciones puede comprobar si este caso de uso se apoya en el dispositivo utilizando el WifiManager#isMakeBeforeBreakWifiSwitchingSupported() API.

Validando hacer antes de romper

Para validar su implementación, active un cambio automático de red Wi-Fi (asegurándose de que esté disponible una red con una intensidad de señal más fuerte que la red actualmente conectada) y verifique que el dispositivo mantenga la conexión existente mientras se conecta a la nueva red. Para ver el estado de ambas interfaces Wi-Fi y verificar que ambas estén conectadas, use el siguiente comando.

adb shell wpa_cli -i wlan0 status ; echo ; adb shell wpa_cli -i wlan1 status

Si la nueva red no tiene conectividad, el dispositivo intenta conectarse a la red, mientras mantiene la conexión con la red existente, y aborta el intento cuando detecta que la nueva red no tiene Internet. Luego, el dispositivo continúa usando la conexión existente como la red Wi-Fi principal.

Conexión a Internet y solo local simultánea

La función de conexión local solamente y internet concurrente permite que los dispositivos se conectan a un sólo local de conexión, tal como una conexión a un dispositivo de la IO, simultáneamente con la red internet-proporcionando primaria. Esta función mejora la experiencia del usuario cuando directamente la conexión a dispositivos de IO, tales como cámaras, lo que es posible a través de la WifiNetworkSpecifier API añadido en Android 10.

En Android 11 y versiones anteriores, los dispositivos se desconectan de la red Wi-Fi principal cuando se conectan a un dispositivo IoT, lo que resulta en una pérdida de conectividad a Internet (a menos que el dispositivo tenga otro tipo de transporte disponible, como datos móviles).

Aplicaciones puede comprobar si esta función es compatible con el dispositivo usando el WifiManager#isStaConcurrencyForLocalOnlyConnectionsSupported() API.

Para obtener más información sobre los cambios en la función local concurrente solamente y conexión a internet en Android 12, consulte red Wi-Fi Solicitud API para conectividad peer-to-peer .

Validación de la conexión a Internet y solo local

Para validar esta función, utilice las siguientes pruebas CTS y ACTS:

  • CTS: MultiStaConcurrencyWifiNetworkSpecifierTest
  • ACTOS: WifiStaConcurrencyNetworkRequestTest

Conexión simultánea restringida y a Internet

El concurrente restringido y función de conexión a Internet permite que el dispositivo se conecte conccurently a una red Wi-Fi principal para el usuario y una red Wi-Fi restringida que sólo está disponible para seleccionar aplicaciones.

Aplicaciones puede comprobar si esta función es compatible con el dispositivo usando el WifiManager#isStaConcurrencyForRestrictedConnectionsSupported() API.

Para permitir que un dispositivo se conecte a redes Wi-Fi restringidas secundarias, siga estos pasos:

  1. Añadir sugerencias de la red Wi-Fi con setOemPaid o setOemPrivate establece en true.

  2. En ConnectivityManager , presentar una NetworkRequest con las capacidades correspondientes:

Cuando el dispositivo detecta resultados de escaneo con una red que coincide con la sugerencia de pago o privada del OEM, se conecta automáticamente a él como una red secundaria.

Validación de la conexión a Internet y restringida simultánea

Para validar esta función, utilice las siguientes pruebas CTS y ACTS:

  • CTS: MultiStaConcurrencyRestrictedWifiNetworkSuggestionTest
  • ACTOS: WifiStaConcurrencyNetworkRequestTest

Directrices del proveedor de chips Wi-Fi

Para los proveedores de chips de Wi-Fi, use las siguientes pautas para admitir la concurrencia de Wi-Fi STA / STA.

El chip Wi-Fi debe admitir conexiones STA simultáneas duales. Esto significa que admite lo siguiente:

  • Cada interfaz STA tiene un MAC único programable por el marco.
  • La interfaz de STA secundaria se puede crear y destruir dinámicamente.
  • Cada STA se puede conectar a un SSID diferente (ya sea dentro de la misma banda o en una banda diferente).
  • Cada STA se puede conectar al mismo SSID (ya sea dentro de la misma banda o en una banda diferente). Los dos STA nunca deben estar conectados a la misma BSSID.

Las funciones críticas deben operar por interfaz y deben estar disponibles en la interfaz principal. La siguiente es una lista de estas características críticas:

  • Roaming debe ser soportado en al menos la interfaz primaria (conjunto usando IWifiChip.setMultiStaPrimaryConnection() ). Si se admite la itinerancia en ambas interfaces, las decisiones sobre una conexión no deben chocar con la segunda conexión simultánea. Por ejemplo, una interfaz no debe desplazarse al BSSID de la otra conexión.

  • APF (y otros offloads tales como ARP y NS) deben estar soportados sobre al menos la interfaz primaria (conjunto usando IWifiChip.setMultiStaPrimaryConnection() ).

  • Las estadísticas de la capa de enlace deben operar por interfaz.

Las siguientes son implementaciones de chips Wi-Fi recomendadas para diferentes escenarios de simultaneidad:

  • El chip Wi-Fi debe permitir que el marco para llamar IWifiChip.setMultiStaUseCase() con una de las siguientes constantes para especificar la función actual:

    • DUAL_STA_TRANSIENT_PREFER_PRIMARY : Especifica la función de conmutación previa a la rotura. La calidad de la conexión primaria debe tener prioridad sobre la conexión secundaria.
    • DUAL_STA_NON_TRANSIENT_UNBIASED : Especifica el local solamente y conexión a Internet concurrente o la función de conexión a Internet restringido y concurrente. La calidad de ambas conexiones debe priorizarse por igual.
  • Debido a las STA duales simultáneas pueden dar lugar a modos de MCC, SCC, y DBS de funcionamiento, la aplicación proveedor debe elegir la mejor configuración de radio cuando la infraestructura llama IWifiChip.setMultiStaUseCase() para indicar la función. Las siguientes son pautas generales:

    • Se prefiere 2x2 + 2x2 DBS si está disponible.
    • Evite 1x1 + 1x1 DBS si es posible debido al impacto excesivo en la calidad de la conexión. En su lugar, prefiera MCC.
    • El ciclo de trabajo del MCC debe ser configurable por el controlador o el firmware para las diversas funciones. El marco no establece el ciclo de trabajo de MCC directamente, sino que consulta esta información utilizando StaLinkLayerIfaceStats.timeSliceDutyCycleInPercent .
    • Si usa MCC, recomendamos los siguientes ciclos de trabajo entre las conexiones primaria y secundaria:

      • DUAL_STA_TRANSIENT_PREFER_PRIMARY : 70% primaria, 30% secundaria.
      • DUAL_STA_NON_TRANSIENT_UNBIASED : 50% primaria, 50% secundaria.