O Android 12 apresenta a simultaneidade de Wi-Fi AP/AP, que permite que o dispositivo crie duas interfaces de ponto de acesso (AP). Com esse recurso, seu dispositivo pode oferecer suporte ao tethering por um ponto de acesso Wi-Fi de banda dupla simultânea (DBS, na sigla em inglês) (AP suave). Para detalhes sobre como oferecer suporte ao tethering por um único ponto de acesso Wi-Fi, consulte Ponto de acesso Wi-Fi (Soft AP).
Esta página descreve o comportamento do dispositivo quando esse recurso está ativado e fornece detalhes de implementação para você como fabricante ou fornecedor de dispositivos.
Como funciona
Quando a simultaneidade de Wi-Fi AP/AP é compatível, o dispositivo pode criar duas interfaces de AP, por exemplo, uma funcionando na banda de 2,4 GHz e outra na de 5 GHz. Os clientes podem se conectar a cada uma das interfaces de AP.
O HAL do 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 AP suave. Depois que o AP suave é 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 PA 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. É possível 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 Wi-Fi AP/AP usando uma das seguintes configurações de soft AP em ponte:
- Configurar duas bandas (o canal é selecionado automaticamente pela estrutura ou pelo driver)
- Configurar dois canais em um AP de banda dupla
Requisitos
Para implementar a simultaneidade de AP/AP Wi-Fi, seus dispositivos precisam atender aos seguintes requisitos:
O chip ou firmware Wi-Fi precisa ser compatível com duas conexões AP simultâneas. O firmware precisa ser compatível com todas as combinações de canais e bandas para as duas conexões. Para evitar problemas de desempenho, recomendamos usar um chip Wi-Fi 2x2+2x2 compatível com DBS.
Seu dispositivo precisa ser compatível com os seguintes métodos na 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:
Ative pelo menos uma das seguintes funções (desativadas por padrão) usando sobreposições de recursos de tempo de execução:
config_wifiBridgedSoftApSupported
: oferece suporte a vários pontos de acesso conectados por ponte.config_wifiStaWithBridgedSoftApConcurrencySupported
: oferece suporte à concorrência de uma estação (STA) e vários APs em ponte.
Dispositivos que usam a HAL de Wi-Fi AIDL ou a HAL de Wi-Fi HIDL 1.6 definem
AP_BRIDGED
na combinação de interfaces da HAL de Wi-Fi. Para mais detalhes, consulte Simultaneidade de várias interfaces de Wi-Fi.Configure o AP de software em ponte chamando um dos seguintes métodos:
Registre um callback para receber os recursos do dispositivo usando
WifiManager#registerSoftApCallback
. OSoftApCallback
fornece os seguintes métodos para uma configuração de AP virtual em ponte:SoftApCallback#onInfoChanged
- Fornece informações sobre as instâncias de AP de software em execução.
SoftApCallback#onConnectedClientsChanged
- Fornece uma lista de clientes conectados para uma instância de AP flexível.
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 da versão 13)
config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging
- Indica se o timer de desligamento por inatividade deve ser desativado durante o carregamento.