Compatibilidade com a API Captive Portal

A partir do Android 11 Beta 2, o sistema oferece compatibilidade com um subconjunto de recursos descritos por RFC7710bis e pela API Captive Portal associada (links em inglês).

A API oferece uma maneira confiável para os pontos de acesso se identificarem como portais cativos. Ela também permite novos casos de uso para que os pontos de acesso publiquem informações aos usuários, como informações de sessão e local.

Detecção melhorada de portal cativo

Desde o Android 5.0 (nível da API 21), os dispositivos Android detectavam portais cativos e notificavam o usuário que ele precisava fazer login na rede para acessar a Internet. Os portais cativos eram detectados usando sondagens HTTP de texto simples para destinos conhecidos (como connectivitycheck.gstatic.com). Se a sondagem recebesse um redirecionamento HTTP, o dispositivo presumia que a rede era um portal cativo. Essa técnica pode não ser confiável porque não há um URL padrão para sondagem, e essas sondagens podem ser acidentalmente permitidas ou bloqueadas (em vez de serem redirecionadas) por redes de portais cativos. A API permite que os portais forneçam um sinal positivo de que o login é necessário e um URL no qual fazer login.

O Android 11 é compatível com a opção DHCP 114 como descrito em RFC7710bis. Poderemos adicionar compatibilidade com a opção de publicidade do roteador em uma atualização futura. Se o dispositivo receber um URL da API Captive Portal por meio dessa opção durante o handshake do DHCP, os dispositivos buscarão o conteúdo da API imediatamente após a conexão e solicitarão que os usuários façam login se a rede for cativa, conforme a API Captive Portal.

Se a API não estiver disponível ou se nenhum portal for anunciado, o sistema continuará a detectar portais e verificar a conectividade com a Internet usando sondagens HTTP/HTTPS, como antes.

Informações publicadas no local

O Android 11 é compatível com o venue-info-url definido na API Captive Portal. Esse URL permite que os usuários recebam informações específicas do contexto sobre o local do ponto de acesso no navegador. Por padrão, os usuários podem abrir esse URL se usando uma notificação após o login ou nas configurações de rede.

Captura de tela mostrando o pop-up que permite ao usuário visitar o URL
do local
Figura 1. Se a rede fornecer um URL de local, o sistema exibirá um aviso permitindo que o usuário acesse essa página.

Captura de tela mostrando como abrir o site na tela
"Detalhes da rede"
Figura 2. Botão para abrir o site na tela "Detalhes da rede".

Casos de uso futuros

Embora no lançamento o Android 11 seja compatível apenas com um conjunto básico de recursos da API Captive Portal, novos recursos podem ser enviados aos dispositivos por meio das atualizações do sistema do Google Play após o lançamento. Incentivamos que os operadores de rede implementem a API Captive Portal, tendo em mente possíveis melhorias futuras:

  • O tempo da sessão (seconds-remaining) é usado atualmente no app Configurações padrão para informar os usuários por quanto tempo podem continuar conectados ao portal. A capacidade de estender a sessão por meio do URL de login (can-extend-session) também pode ser expressa por meio da API para permitir que o sistema avise o usuário sobre sessões expiradas ou que vão expirar em breve.
  • Os limites de dados (bytes-remaining) podem ser anunciados pela API para permitir que os usuários acompanhem os dados restantes.