O Android 12 introduz a simultaneidade Wi-Fi AP/AP, que permite que os dispositivos criem duas interfaces de ponto de acesso (AP). Com esse recurso, os dispositivos são compatíveis com tethering por Wi-Fi de banda dupla simultânea (DBS, na sigla em inglês) ponto de acesso (soft AP). Para mais detalhes sobre como oferecer suporte ao tethering por meio de uma única rede Wi-Fi ponto de acesso, consulte Suporte para ponto 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 dois APs do aplicativo.Por exemplo, uma interface que funciona na banda de 2, 4 GHz na banda 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 os dois APs. e as expõe à pilha de Wi-Fi e conectividade quando ativa um soft AP. Depois que o soft AP é ativado, a HAL de 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 usado (2, 4 GHz, 5 GHz ou 6 GHz) após um período de inatividade. O framework considera um AP como inativo quando nenhum cliente está conectado. Os fabricantes de dispositivos podem personalizar a duração do período de inatividade. Para mais informações, consulte Personalize o período de inatividade.
Os dispositivos são compatíveis com a simultaneidade de Wi-Fi AP/AP usando uma das seguintes opções configurações de AP de software em ponte:
- Configurar duas bandas (o canal é selecionado automaticamente pelo ou o driver)
- Configuração de 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: requisitos:
O chip ou firmware Wi-Fi precisa oferecer suporte a dois APs simultâneos conexões de rede. O firmware deve oferecer suporte a todas as combinações de canais e bandas para as duas conexões. Para evitar problemas de desempenho, recomendamos o uso Um chip Wi-Fi 2x2+2x2 com DBS.
O dispositivo precisa ser compatível com os seguintes métodos na HAL de 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 (desativada por padrão) usando sobreposições de recursos no ambiente de execução:
config_wifiBridgedSoftApSupported
: oferece suporte a vários APs que são unidas.config_wifiStaWithBridgedSoftApConcurrencySupported
: suporte simultaneidade de uma estação (STA) e vários APs em ponte.
Para dispositivos que usam a HAL de Wi-Fi AIDL ou a HAL 1.6 de Wi-Fi HIDL, defina
AP_BRIDGED
na combinação de interfaces HAL de Wi-Fi. Para mais detalhes, consulte Simultaneidade de várias interfaces de Wi-Fi.Defina a configuração do soft AP em ponte chamando uma das opções a seguir métodos:
Registre um callback para acessar os recursos do dispositivo usando
WifiManager#registerSoftApCallback
: O callbackSoftApCallback
O fornece os seguintes métodos para uma configuração de soft AP em ponte:SoftApCallback#onInfoChanged
Fornece informações sobre as instâncias do 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 o seguinte:
que se encontra
em packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml
:
config_wifiFrameworkSoftApShutDownIdleInstanceInBridgedModeTimeoutMillisecond
: O intervalo de tempo limite padrão de desligamento. Válido apenas seSoftApConfiguration#setBridgedModeOpportunisticShutdownEnabled
está ativado.(disponível nas 13 opções)
config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging
: Indica se o timer de desligamento por inatividade será desativado durante o carregamento.