O Android 12 introduz a simultaneidade Wi-Fi AP/AP, que permite que os dispositivos criem duas interfaces de ponto de acesso (AP). Este recurso permite que os dispositivos suportem tethering por meio de um ponto de acesso Wi-Fi simultâneo de banda dupla (DBS) (soft AP). Para obter detalhes sobre o suporte ao tethering por meio de um único ponto de acesso Wi-Fi, consulte Suporte para ponto de acesso Wi-Fi (Soft AP) .
Esta página descreve o comportamento do dispositivo quando esse recurso está habilitado e detalhes de implementação para fabricantes e fornecedores de dispositivos.
Como funciona
Quando a simultaneidade Wi-Fi AP/AP é suportada, o dispositivo pode criar duas interfaces AP, por exemplo, uma interface trabalhando na banda de 2,4 GHz e outra na banda de 5 GHz. Os clientes podem então se conectar a cada uma das interfaces AP.
O Wi-Fi HAL gera uma única interface em ponte com as duas interfaces AP e a expõe ao Wi-Fi e à pilha de conectividade quando a pilha habilita um AP flexível. Depois que o soft AP é habilitado, o HAL 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, a estrutura desativa um AP não utilizado (2,4 GHz, 5 GHz ou 6 GHz) após um período de inatividade. A estrutura considera um AP inativo quando nenhum cliente está conectado. Os fabricantes de dispositivos podem personalizar a duração desse período de inatividade. Para obter mais informações, consulte Personalizar o período de inatividade .
Os dispositivos suportam simultaneidade de AP/AP Wi-Fi usando uma das seguintes configurações de AP flexível em ponte:
- Configurando duas bandas (o canal é selecionado automaticamente pelo framework ou pelo driver)
- Configurando dois canais em um AP de banda dupla
Requisitos
Para implementar a simultaneidade Wi-Fi AP/AP, os dispositivos devem atender aos seguintes requisitos:
O chip ou firmware Wi-Fi deve suportar duas conexões AP simultâneas. O firmware deve suportar todas as combinações de canais e bandas para ambas as conexões. Para evitar problemas de desempenho, recomendamos o uso de um chip Wi-Fi compatível com 2x2+2x2 DBS.
O dispositivo deve suportar os seguintes métodos no HAL do fornecedor de Wi-Fi:
-
IWifiChip.createBridgedApIface()
-
IWifiChip.removeIfaceInstanceFromBridgedApIface()
-
IWifiApIface.resetToFactoryMacAddress()
-
IWifiApIface.getBridgedInstances()
-
Implementação
Para implementar a simultaneidade Wi-Fi AP/AP, faça o seguinte:
Ative pelo menos uma das seguintes funções (desativada por padrão) usando sobreposições de recursos de tempo de execução :
-
config_wifiBridgedSoftApSupported
: Suporta vários APs interligados. -
config_wifiStaWithBridgedSoftApConcurrencySupported
: Suporta simultaneidade de uma estação (STA) e vários APs em ponte.
-
Para dispositivos que usam AIDL Wi-Fi HAL ou HIDL Wi-Fi HAL 1.6, defina
AP_BRIDGED
na combinação de interface Wi-Fi HAL. Para obter mais detalhes, consulte Simultaneidade de múltiplas interfaces Wi-Fi .Configure a configuração do soft AP em ponte chamando um dos seguintes métodos:
Registre um retorno de chamada para obter os recursos do dispositivo usando
WifiManager#registerSoftApCallback
. O retorno de chamadaSoftApCallback
fornece os seguintes métodos para uma configuração de ponto de acesso flexível em ponte:-
SoftApCallback#onInfoChanged
: fornece informações sobre as instâncias de soft AP em execução. -
SoftApCallback#onConnectedClientsChanged
: fornece uma lista de clientes conectados para uma instância de soft AP.
-
Personalize o período de inatividade
Para personalizar a duração do período de inatividade, configure a seguinte sobreposição, que é 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 seSoftApConfiguration#setBridgedModeOpportunisticShutdownEnabled
estiver habilitado.(Disponível em 13)
config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging
: Indica se o temporizador de desligamento por inatividade deve ser desativado durante o carregamento.