Simultaneidade de Wi-Fi AP/AP

O Android 12 apresenta a simultaneidade AP/AP do Wi-Fi, que permite que os dispositivos criem duas interfaces de ponto de acesso (AP). Esse recurso permite que os dispositivos ofereçam suporte ao tethering por um ponto de acesso Wi-Fi (softAP) Dual Band Simultaneous (DBS). Para saber mais sobre o suporte a tethering por um único ponto de acesso Wi-Fi, consulte Suporte a pontos de acesso Wi-Fi (soft AP).

Esta página descreve o comportamento do dispositivo quando esse recurso está ativado e detalhes de implementação para fabricantes e fornecedores de dispositivos.

Como funciona

Quando a simultaneidade de Wi-Fi AP/AP é compatível, o dispositivo pode criar duas interfaces AP, por exemplo, uma que funcione na banda de 2,4 GHz e outra na de 5 GHz. Os clientes podem então se conectar a cada uma das interfaces de AP.

A HAL de Wi-Fi gera uma única interface em ponte com as duas interfaces de AP e a expõe à pilha de Wi-Fi e conectividade quando a pilha ativa um soft AP. Depois que o AP virtual é ativado, o HAL do Wi-Fi indica que duas interfaces estão disponíveis e atualiza as informações (como canal de operação, largura de banda e BSSID) para cada AP.

Para economizar energia, o framework desativa um AP não utilizado (2, 4 GHz, 5 GHz ou 6 GHz) após um período de inatividade. O framework considera um AP inativo quando nenhum cliente está conectado. Os fabricantes de dispositivos podem personalizar a duração desse período de inatividade. Para mais informações, consulte Personalizar o período de inatividade.

Os dispositivos oferecem suporte à simultaneidade de AP/AP Wi-Fi usando uma das seguintes configurações de AP soft em ponte:

  • Configurar duas bandas (o canal é selecionado automaticamente pelo framework ou pelo driver)
  • Como configurar dois canais em um AP de banda dupla

Requisitos

Para implementar a simultaneidade de Wi-Fi AP/AP, os dispositivos precisam atender aos seguintes requisitos:

  • O chip ou firmware Wi-Fi precisa oferecer suporte a duas conexões de AP simultâneas. O firmware precisa oferecer suporte a todas as combinações de canal e banda para as duas conexões. Para evitar problemas de desempenho, recomendamos usar um chip Wi-Fi compatível com DBS 2x2+2x2.

  • O dispositivo precisa oferecer suporte aos seguintes métodos no HAL do fornecedor de Wi-Fi:

    • IWifiChip.createBridgedApIface()
    • IWifiChip.removeIfaceInstanceFromBridgedApIface()
    • IWifiApIface.resetToFactoryMacAddress()
    • IWifiApIface.getBridgedInstances()

Implementação

Para implementar a simultaneidade de Wi-Fi AP/AP, faça o seguinte:

  1. Ative pelo menos uma das seguintes funções (desativadas por padrão) usando sobreposições de recursos de execução:

    • config_wifiBridgedSoftApSupported: oferece suporte a vários APs que são conectados.
    • config_wifiStaWithBridgedSoftApConcurrencySupported: compatível com a simultaneidade de uma estação (STA, na sigla em inglês) e vários APs em ponte.
  2. Para dispositivos que usam a HAL do Wi-Fi AIDL ou a HAL do Wi-Fi HIDL 1.6, defina AP_BRIDGED na combinação da interface da HAL do Wi-Fi. Para mais detalhes, consulte Simultaneidade de várias interfaces de Wi-Fi.

  3. Configure a configuração de AP suave com ponte chamando um dos seguintes métodos:

  4. Registre um callback para receber os recursos do dispositivo usando WifiManager#registerSoftApCallback. O callback SoftApCallback fornece os seguintes métodos para uma configuração de soft AP em ponte:

Personalizar o período de inatividade

Para personalizar a duração do período de inatividade, configure a seguinte sobreposição, que pode ser encontrada em packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml:

  • config_wifiFrameworkSoftApShutDownIdleInstanceInBridgedModeTimeoutMillisecond: o intervalo de tempo limite de desligamento padrão. Válido apenas se SoftApConfiguration#setBridgedModeOpportunisticShutdownEnabled estiver ativado.

  • (Disponível a partir de 13) config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging: indica se o timer de desligamento por inatividade será desativado durante o carregamento.