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

Compatibilidad con punto de acceso Wi-Fi (Soft AP) para anclaje

Android admite el anclaje a través de un punto de acceso Wi-Fi (Soft AP). Desde Android 11, la configuración de Soft AP disponible para los fabricantes de dispositivos admite más casos de uso y personalizaciones de operadores, incluida la configuración de lo siguiente:

  • SSID y BSSID
  • Tipo de seguridad (incluido WPA3)
  • SSID oculto
  • Banda y canal de funcionamiento (incluido ACS)
  • Número máximo de clientes permitidos
  • Valor de tiempo de espera de apagado automático
  • Allowlist y blocklist para permitir al usuario el control de los dispositivos asociados

Las capacidades del dispositivo determinan la disponibilidad de estos controles. Android 11 presenta API para obtener estas capacidades. Los fabricantes de dispositivos también pueden especificar las capacidades del dispositivo base mediante superposiciones.

Tenga en cuenta que algunas de las API son API del sistema y están restringidas mediante permisos para que solo la aplicación Configuración del sistema pueda acceder a ellas.

Ejemplos y fuente

La aplicación AOSP Settings proporciona una implementación predeterminada, sin embargo, no ejerce todas las API para la configuración de Soft AP. Una aplicación de llamada debe realizar estas tres funciones:

  1. Registrar una devolución de llamada para obtener las capacidades de los dispositivos que utilizan WifiManager#registerSoftApCallback . El SoftApCallback de devolución de llamada proporciona varios métodos:

    • SoftApCallback#onCapabilityChanged : Proporciona información acerca de las capacidades del dispositivo, incluyendo el número máximo de clientes compatibles, y si SAE o ACS son compatibles.
    • SoftApCallback#onInfoChanged : Proporciona información sobre el funcionamiento suave AP (válido sólo una vez iniciado), incluyendo la banda y la información de frecuencia.
    • SoftApCallback#onConnectedClientsChanged : Proporciona una lista de clientes conectados. Para cada cliente, puede obtener la dirección MAC. Para obtener la información IP, utilice el TetheringEventCallback#onClientsChanged de devolución de llamada.
    • SoftApCallback#onStateChanged : Proporciona información actualizada sobre el estado de la AP suave, ya que se activa y desactiva.
    • SoftApCallback#onBlockedClientConnecting : Proporciona la información del cliente bloqueado con una de las siguientes razones para el bloque: el dispositivo ha alcanzado el número máximo de clientes que puede soportar o el cliente no está autorizado explícitamente a conectar.
  2. Configurar la configuración Soft AP para ser utilizado para la inmovilización llamando al WifiManager#setSoftApConfiguration método y proporcionar un SoftApConfiguration ejemplo. Es posible construir SoftApConfiguration utilizando el SoftApConfiguration.Builder clase.

  3. Iniciar la inmovilización mediante una llamada al método de inmovilización en TetheringManager#startTethering .

Implementar listas de permisos y bloqueos

Un requisito típico del operador es proporcionar al usuario controles de los dispositivos que pueden asociarse al Soft AP. Hay varios mecanismos para hacer esto:

  • Limitar el número máximo de dispositivos que se pueden asociar a la AP por software mediante SoftApConfiguration.Builder#setMaxNumberOfClients . Asegúrese de especificar un número menor que el número máximo de clientes admitidos por el dispositivo. Puede obtener el número máximo de SoftApCapability#getMaxSupportedClients .
  • Proporcione control dinámico mediante listas de permisos y bloqueos:

    • La configuración por defecto de un AP suave permite que todos los dispositivos se asocien para la AP suave a excepción de los dispositivos cuyas direcciones MAC se añaden a SoftApConfiguration.Builder#setBlockedClientList .
    • Si el punto de acceso está configurado con suave SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) , el permitir que se utiliza la lista.

      • Todos los dispositivos cuyas direcciones MAC están en SoftApConfiguration.Builder#setBlockedClientList se bloquea la asociación.
      • Todos los dispositivos cuyas direcciones MAC están en SoftApConfiguration.Builder#setAllowedClientList se permite la asociación.
      • Todos los demás dispositivos (es decir, dispositivos cuyas direcciones MAC no están en la lista de bloqueo o permiten) se bloquea la asociación, sino SoftApCallback#onBlockedClientConnecting se llama, lo que permite la aplicación de control (es decir, la aplicación Ajustes) para tomar una acción, por Por ejemplo, pedir confirmación al usuario y luego agregar el dispositivo a la lista de permitidos o a la lista de bloqueo, según el comportamiento del usuario.

    Tenga en cuenta que los dispositivos solo pueden usar la función de lista de permitidos si es compatible con el dispositivo. Puede verificar la compatibilidad con dispositivos usando SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .

Implementación

Para admitir el anclaje a través de un punto de acceso Wi-Fi (Soft AP), los fabricantes de dispositivos deben proporcionar la aplicación de configuración, el marco y compatibilidad con HAL / firmware:

  • Configuración de aplicación: La aplicación de configuración AOSP proporciona una base para la configuración de un punto de acceso tethering con SSID y las credenciales de seguridad. Este código puede ser utilizada como es o modificado para proporcionar capacidades adicionales como se describe en los Ejemplos y fuente .

  • Marco: El código de marco AOSP soporta toda la funcionalidad se describe en los Ejemplos y fuente .

  • HAL / firmware de punto de acceso: IHostapd.HAL versión 1.2 o superior.

Personalización

Para personalizar la aplicación, los fabricantes de dispositivos deben configurar los siguientes superposiciones y configuraciones de soporte, las cuales están documentadas en packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml :

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : El intervalo de tiempo de espera de apagado por defecto. Sólo es válido si SoftApConfiguration#setAutoShutdownEnabled está activado. Pueden redefinirse mediante SoftApConfiguration#setShutdownTimeoutMillis .
  • config_wifiHardwareSoftapMaxClientCount : La limitación de hardware para el número máximo de clientes compatibles. El número máximo de clientes que los soportes de dispositivos es el mínimo de las limitaciones de hardware y soporte (especificado por CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT ). El resultado final es proporcionada a la aplicación con SoftApCapabilities#getMaxSupportedClients .
  • config_wifiSofapClientForceDisconnectSupported : si el dispositivo tiene la capacidad de forzar la desconexión de un cliente. Requerido para habilitar las listas de permisos y bloqueos. Comunicado a la aplicación de control (aplicación de configuración) a través de SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .
  • Soporte del canal: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList y config_wifiSoftap6gChannelList .
  • Restaurar apoyo especificando si las entradas correspondientes se restablecen a los valores predeterminados cuando se restaura la configuración del punto de acceso a un nuevo dispositivo: config_wifiSoftapResetChannelConfig , config_wifiSoftapResetHiddenConfig , config_wifiSoftapResetUserControlConfig , config_wifiSoftapResetAutoShutdownTimerConfig , config_wifiSoftapResetMaxClientSettingConfig . Tenga en cuenta que éstos se establecen en true por defecto, lo que significa que los valores se ponen a cero. Esto es fundamental si el nuevo dispositivo no admite la configuración.
  • Capacidades de hardware:

    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftapAcsIncludeDfs

Validación

Android proporciona un conjunto de pruebas unitarias, pruebas de integración (Android Connectivity Test Suite o ACTS) y pruebas de Compatibility Test Suite (CTS) para validar la función de hotspot. La función de punto de acceso también se puede probar utilizando Vendor Test Suite (VTS).

Pruebas unitarias

Verifique el paquete del hotspot mediante las siguientes pruebas.

  • Pruebas de servicio:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • Pruebas de administrador:

    atest packages/modules/Wifi/framework/tests/
    

Pruebas de integración (ACTS)

El ACTS conjunto de pruebas de punto de acceso, situada en tools/test/connectivity/acts/tests/google/wifi/WifiSoftApTest.py , implementa las pruebas de funcionamiento de la función de punto de acceso.

Pruebas de Compatibility Test Suite (CTS)

Uso CTS prueba para validar la función de punto de acceso. CTS detecta cuando la función está habilitada e incluye automáticamente las pruebas asociadas.

Para activar las pruebas CTS, ejecute:

atest android.net.wifi.cts.WifiManagerTest

Conjunto de pruebas de proveedores (VTS)

Para ejecutar las pruebas de VTS, ejecute:

atest VtsHalWifiHostapdV1_2Target