Seleção de rede Wi-Fi Android

Esta página descreve os algoritmos e procedimentos usados ​​no Android 12 para selecionar e alternar entre redes Wi-Fi. O Android avalia continuamente a qualidade da rede conectada e avalia a qualidade das redes disponíveis.

Vida de uma conexão automática

Descreve o processo de como um dispositivo Android avalia e se conecta às redes Wi-Fi disponíveis.

  1. O dispositivo procura redes disponíveis de uma das seguintes maneiras, dependendo se a tela está ligada ou desligada.

    • Tela ativada (conectada): o subsistema de conectividade do Android avalia regularmente se a conexão atual é boa o suficiente para ignorar a verificação (conforme definido em verificações na tela ). Se a conexão não for boa o suficiente para ignorar a verificação, o subsistema de conectividade acionará uma verificação para detectar redes disponíveis. Essas verificações também podem ser acionadas por outros componentes do sistema, como o sistema de localização ou um aplicativo (incluindo o aplicativo Configurações).
    • Tela ligada (desconectada): o subsistema de conectividade do Android emite verificações periódicas seguindo um cronograma de espera exponencial. O módulo avalia todos os resultados de varredura recebidos e tenta selecionar a melhor rede para se conectar.
    • Tela desligada (desconectada): A CPU host programa o firmware com uma lista de redes preferenciais usando varreduras de descarregamento de rede preferencial (PNO) assim que a tela se apaga. O firmware acorda o host se encontrar alguma das redes preferidas. O AOSP assume que o PNO é compatível com o dispositivo.

    O método WifiManager#allowAutojoinGlobal(boolean) pode ser usado para desabilitar conexões automáticas. Esta é uma API privilegiada que pode ser usada por fabricantes de dispositivos em circunstâncias limitadas (por exemplo, um dispositivo pré-configurado não móvel).

    Se o dispositivo estiver conectado e a sobreposição config_wifi_framework_enable_associated_network_selection estiver definida como false , nenhuma verificação de conectividade será executada e os resultados da verificação não acionarão a seleção de rede. Esta configuração não tem efeito quando o dispositivo está desconectado, o que significa que as verificações de conectividade e a seleção de rede ainda ocorrem.

  2. Os resultados da verificação são avaliados.

    • Se o dispositivo estiver conectado a uma rede Wi-Fi, a estrutura avalia se a rede atual é boa o suficiente para ignorar a seleção de rede .

      Uma rede é definida como boa o suficiente para ignorar a seleção de rede se algum dos seguintes requisitos for atendido:

      • Menos de 10 segundos se passaram desde a última seleção de rede.
      • O usuário se conectou manualmente recentemente à rede (onde recentemente é configurável usando a sobreposição config_wifiSufficientDurationAfterUserSelectionMilliseconds ).
      • O dispositivo está conectado a uma conexão de inscrição online (OSU).
      • Todos os seguintes requisitos são atendidos:

        • O RSSI está acima do limite de RSSI exigido ou há tráfego suficiente fluindo pela conexão (consulte varreduras na tela para RSSI e limites de tráfego).
        • A rede é validada (conectada à Internet) ou aprovada pelo usuário para uso sem acesso à Internet.
        • A rede é ilimitada.
    • Se a rede for boa o suficiente para ignorar a seleção de rede , nenhuma ação adicional será tomada.

    • Se a rede Wi-Fi conectada não for boa o suficiente ou se o dispositivo não estiver conectado a uma rede, a estrutura chama os nomeadores de rede para gerar uma lista de redes Wi-Fi candidatas às quais se conectar com base nos resultados da verificação filtrados . Os nomeadores de rede encontram configurações de Wi-Fi existentes ou criam novas configurações para as redes candidatas.

    • Os resultados da verificação são filtrados para remover BSSIDs que têm um RSSI abaixo da entrada RSSI (configurável usando as sobreposições config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz e config_wifiFrameworkScoreEntryRssiThreshold6ghz ). Além disso, os BSSIDs bloqueados são filtrados. Os BSSIDs podem ser bloqueados com base em falhas repetidas de conexão, desconexões frequentes e solicitações explícitas do AP para não tentar associação por um determinado período de tempo (MBO-OCE). O bloqueio de BSSID é descrito abaixo em Bloqueio de SSID e BSSID .

    • Quando o dispositivo se move rapidamente, os resultados da verificação são opcionalmente filtrados para remover BSSIDs cujo RSSI varia rapidamente (indicação de que eles não estão se movendo junto com o dispositivo). Essa otimização é configurável usando config_wifiHighMovementNetworkSelectionOptimizationEnabled (ativando/desativando a otimização) e as sobreposições config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs e config_wifiHighMovementNetworkSelectionOptimizationRssiDelta , que configuram o requisito de estabilidade nos resultados da verificação (mudança de RSSI nos resultados da verificação suficientemente separados no tempo).

  3. A estrutura executa o marcador de candidato para gerar uma pontuação para cada candidato a identificador de conjunto de serviços (SSID). Os candidatos SSID podem incluir vários candidatos a identificadores de conjunto de serviços básicos (BSSID) (gerados pelos nominadores de rede). O candidato com maior pontuação é o candidato vencedor .

  4. A estrutura executa o algoritmo de escolha de conexão do usuário , que pode tornar uma rede selecionada pelo usuário o novo candidato vencedor, em vez de usar o candidato vencedor do marcador de candidatos.

  5. A estrutura determina se o candidato vencedor corresponde à rede atualmente conectada. Para ser considerada uma correspondência, um dos seguintes deve ser atendido:

    • O candidato vencedor e a rede Wi-Fi conectada possuem o mesmo BSSID.
    • Se o roaming de firmware estiver disponível (incluindo capacidade de lista negra de BSSID), o candidato vencedor e a rede conectada terão o mesmo SSID e tipo de segurança.

    Se o candidato vencedor corresponder à rede atualmente conectada, nenhuma ação adicional será tomada. Se o candidato vencedor não corresponder à rede, o dispositivo será associado ao candidato vencedor.

Observe que a conexão automática de rede é desativada enquanto um aplicativo usa a API de solicitação de rede Wi-Fi , que substitui o sistema e cria uma LAN sem Internet, exceto em dispositivos que suportam estações duplas simultâneas.

Avaliação de uma rede conectada

A estrutura ou firmware do Android avalia periodicamente a qualidade da rede conectada. Esta seção descreve como a rede conectada é avaliada quando a tela está ligada ou desligada.

Esta avaliação é feita além da seleção da rede discutida acima.

Tela ligada

A estrutura Android avalia a rede conectada da seguinte maneira:

  1. O serviço Wi-Fi pesquisa RSSI e estatísticas da camada de link a cada 3 segundos (configurável usando a sobreposição config_wifiPollRssiIntervalMilliseconds ).

    Se o ajuste de intervalo dinâmico for habilitado usando a sobreposição config_wifiAdjustPollRssiIntervalEnabled , o intervalo de sondagem mudará dinamicamente com base no estado de mobilidade do dispositivo e no RSSI.

    • O intervalo de sondagem é estendido para 6 segundos (configurado pela sobreposição config_wifiPollRssiLongIntervalMilliseconds ) quando o dispositivo está estacionário e o RSSI está acima de -68 dBm (configurado pelas sobreposições config_wifiClientRssiMonitorThresholdDbm e config_wifiClientRssiMonitorHysteresisDb ).
    • O intervalo de sondagem é reduzido para 3 segundos (configurado pela sobreposição config_wifiPollRssiIntervalMilliseconds ) quando o dispositivo não está estacionário ou o RSSI está abaixo de -73 dBm (configurado pela sobreposição config_wifiClientRssiMonitorThresholdDbm ).
  2. O serviço Wi-Fi calcula uma pontuação conectada com base no RSSI e nas estatísticas da camada de link.

  3. O serviço Wi-Fi passa a pontuação para o serviço de conectividade, que utiliza a pontuação para determinar se deve se conectar a uma rede Wi-Fi ou a outro tipo de rede disponível, como uma rede celular.

Tela apagada

A estrutura não inicia uma avaliação na rede conectada, mas o processo de seleção de rede ainda poderá ocorrer se as varreduras forem iniciadas por outros componentes (por exemplo, serviços de localização). O firmware avalia a qualidade da rede e, se a qualidade da rede for ruim, o firmware poderá fazer roaming ou (eventualmente) desassociar-se da rede e ativar o host.

Verificações de conectividade

As verificações são realizadas automaticamente com base no fato de o dispositivo estar com a tela ligada, com a tela desligada e conectado ao Wi-Fi ou com a tela desligada e não estar conectado ao Wi-Fi.

Tela ligada

A estrutura aciona decisões de varredura em intervalos crescentes quando a tela é ligada. Os intervalos de decisão de varredura são configurados com as sobreposições config_wifiDisconnectedScanIntervalScheduleSec , config_wifiConnectedScanIntervalScheduleSec e config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (que são matrizes de números inteiros). Por padrão, as varreduras ocorrem usando intervalos de espera exponenciais de 20, 40, 80 e 160 segundos, com varreduras subsequentes possivelmente realizadas em intervalos de 160 segundos (esses são os valores padrão das sobreposições acima).

Os intervalos de varredura de espera exponencial são redefinidos e reiniciados em 20 segundos sempre que o estado da tela muda, ou seja, quando a tela é ligada ou desligada.

(Android 13+) Se diferentes intervalos de verificação forem necessários no tempo de execução, um aplicativo com privilégios OEM poderá chamar a API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) para definir dinamicamente a programação de verificação de tela.

A decisão de executar ou ignorar uma verificação depende de a conexão de rede atual ser boa o suficiente para ignorar a verificação . Uma conexão é boa o suficiente para ignorar a verificação se algum dos seguintes requisitos for atendido:

  • O dispositivo está conectado a uma conexão de inscrição online (OSU).
  • Tráfego suficiente está fluindo pela conexão (veja os limites de tráfego abaixo).
  • O RSSI está acima do limite de RSSI exigido (consulte os limites de RSSI abaixo) e a seleção da rede foi realizada recentemente (10 minutos por padrão, mas pode ser configurada usando a sobreposição config_wifiConnectedHighRssiScanMinimumWindowSizeSec ) e a rede é validada (conectada à Internet) ou o usuário -aprovado para uso sem acesso à internet.

O RSSI e os limites de tráfego são:

  • RSSI está acima de -73 dBm para a banda de 2,4 GHz, configurada com a sobreposição config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , ou -70 dBm para as bandas de 5 GHz e 6 GHz, configurada com config_wifi_framework_wifi_score_low_rssi_threshold_5GHz e config_wifiFrameworkScoreLowRssiThreshold6ghz sobreposições de GHz.
  • O tráfego (transmissão ou recepção) está acima de 16 pacotes por segundo (pps) configurado com a sobreposição config_wifiFrameworkMinPacketPerSecondActiveTraffic .

Quando o dispositivo está conectado e a tela ligada. Um marcador conectado monitora periodicamente a qualidade do Wi-Fi observando sinais como RSSI e o número de pacotes transferidos. Se a qualidade do Wi-Fi for considerada ruim (conforme especificado abaixo) e o dispositivo suportar duas estações simultâneas, uma verificação será acionada. A sobreposição config_wifiLowConnectedScoreThresholdToTriggerScanForMbb pode ser usada para configurar o limite de pontuação que aciona a verificação. A sobreposição config_wifiLowConnectedScoreScanPeriodSeconds pode ser usada para configurar o período dessas varreduras.

Tela desligada e conectada ao Wi-Fi

Quando a tela está desligada e o dispositivo está conectado a uma rede Wi-Fi, o firmware (Wi-Fi SoC) realiza varreduras de roaming. A estrutura não executa nenhuma verificação quando a tela está desligada.

Tela desligada e não conectada ao Wi-Fi (estado desconectado)

Quando a tela está desligada e o Wi-Fi desconectado, o firmware executa varreduras PNO em busca de SSIDs. A estrutura configura o firmware com uma lista de SSIDs para varredura e uma lista de canais para varredura. Se um SSID configurado for encontrado, o firmware ativa a estrutura.

A estrutura também configura o intervalo no qual o firmware deve realizar varreduras PNO, usando o estado de mobilidade do dispositivo para selecionar diferentes intervalos de varredura. Em um estado de baixa mobilidade (o dispositivo está estacionário), o intervalo é de 60 segundos para as três primeiras varreduras (controladas pela sobreposição config_wifiStationaryPnoScanIntervalMillis ) e de 180 segundos (um multiplicador fixo de 3x da sobreposição) para varreduras subsequentes. Em um estado de alta mobilidade, o intervalo é de 20 segundos para as três primeiras varreduras (controladas pela sobreposição config_wifiMovingPnoScanIntervalMillis ) e 60 (um multiplicador fixo de 3x da sobreposição) segundos para varreduras subsequentes.

Nomeadores de rede

Os nominadores de rede encontram ou criam configurações ( WifiConfiguration ) para redes que são:

  • Atualmente disponível (com base nos resultados da verificação) ou na rede atualmente conectada (que às vezes está faltando nos resultados da verificação instáveis).
  • Tenha um RSSI mínimo. RSSI mínimo é -80 dBm para a banda de 2,4 GHz e -77 dBm para as bandas de 5 GHz e 6 GHz, configurável usando config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz e config_wifiFrameworkScoreEntryRssiThreshold6ghz Sobreposições de 6 GHz.
  • Não bloqueado, por exemplo, devido a falhas de conexão anteriores.
  • A rede não indica que está inutilizável (por exemplo, usando MBO/OCE).
  • Pode ser associado ao uso das credenciais disponíveis no dispositivo.

Os seguintes nominadores de rede são usados:

  • Nomeador de rede salva: avalia todas as redes salvas (incluindo assinaturas salvas do Passpoint).
  • Nomeador de rede sugerido: avalia todas as redes fornecidas por aplicativos usando a API Suggestion (incluindo assinaturas sugeridas do Passpoint).
  • Nominador de rede pontuado externamente: mecanismo OEM para fornecer opções de conectividade de rede ao dispositivo. Para obter mais informações, consulte Provedor de classificação de rede externa .

Artilheiros candidatos

Os avaliadores dos candidatos avaliam e fornecem uma pontuação para cada candidato. A pontuação do ThroughputScorer (o marcador padrão) é baseada no seguinte:

  • Uma pontuação base é calculada com base no RSSI, onde o RSSI é limitado a -73 dBm para a banda de 2,4 GHz ou -70 dBm para as bandas de 5 GHz e 6 GHz (configurado com config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , config_wifi_framework_wifi_score_low_rssi_threshold_5GHz e config_wifiFramework sobreposições config_wifiFrameworkScoreLowRssiThreshold6ghz ).
  • Um aumento de pontuação é calculado com base em uma estimativa de rendimento derivada da tecnologia, frequência do canal, largura de banda, RSSI, condições do canal, número máximo de fluxos espaciais e outros parâmetros. O aumento de pontuação é configurável usando as sobreposições config_wifiFrameworkThroughputBonusNumerator e config_wifiFrameworkThroughputBonusDenominator e é limitado a um valor máximo especificado usando a sobreposição config_wifiFrameworkThroughputBonusLimit .
  • Uma rede candidata que foi selecionada recentemente pelo usuário ou por um aplicativo obtém um grande aumento de pontuação por um período configurável usando a sobreposição config_wifiFrameworkLastSelectionMinutes (durante esse período, é garantido que a rede será selecionada em redes não selecionadas pelo usuário).
  • Um candidato que corresponda à rede atual recebe um aumento de pontuação configurado pelas sobreposições config_wifiFrameworkCurrentNetworkBonusMin e config_wifiFrameworkCurrentNetworkBonusPercent (ele recebe um bônus extra com base em uma porcentagem de seu RSSI e pontuação baseada em taxa de transferência, até o mínimo configurável).
  • Uma rede segura tem uma pontuação mais alta do que uma rede aberta. O bônus é configurado usando a sobreposição config_wifiFrameworkSecureNetworkBonus .
  • Uma rede ilimitada (gratuita) tem pontuação mais alta do que uma rede medida (paga). O bônus é configurado usando a sobreposição config_wifiFrameworkUnmeteredNetworkBonus .
  • Uma rede salva recebe uma pontuação mais alta do que uma rede sugerida usando a API Suggestion. O bônus é configurado usando a sobreposição config_wifiFrameworkSavedNetworkBonus .
  • Redes não confiáveis ​​(que podem ser solicitadas como parte da API de sugestões) recebem pontuação mais baixa do que qualquer outra rede.
  • Uma rede que foi previamente detectada como sem internet recebe uma pontuação de 0 se o dispositivo estiver atualmente conectado a outra rede que tenha acesso à internet.

O bônus padrão para salvo versus sugestão e ilimitado versus medido (ou seja, os valores de sobreposição padrão) produz uma ordem de prioridade estrita para salvo, sugerido, medido e não medido:

  1. Redes ilimitadas salvas
  2. Redes ilimitadas sugeridas
  3. Redes medidas salvas
  4. Redes medidas sugeridas

Isso significa que uma rede salva não medida (gratuita) é sempre selecionada antes de uma rede salva medida (paga). O bônus de pontuação selecionado recentemente (por usuário ou aplicativo) pode substituir essa prioridade estrita.

A estrutura pode ter vários marcadores candidatos instalados, mas apenas um pode estar ativo por vez. Os outros marcadores podem ser usados ​​para métricas (para investigar algoritmos alternativos). No Android 11, o marcador padrão é ThroughputScorer .

Bloqueio de SSID e BSSID

A estrutura pode bloquear SSIDs e/ou BSSIDs, ou seja, não considerá-los para conexões temporária ou permanentemente.

Bloqueio de BSSID

O bloqueio BSSID funciona mantendo dois contadores de falhas, um contador de falhas contínuo e um contador de sequências, por tipo de falha específico (veja abaixo uma lista de tipos de falha). Quando ocorre uma falha:

  • O contador para o tipo de falha correspondente é incrementado.
  • Se o limite de falha para esse tipo de falha for atingido:
    • O BSSID está bloqueado.
    • O contador de sequências para a falha é incrementado.

A duração pela qual um BSSID é bloqueado começa em um valor base (configurável) (especificado pelas sobreposições config_wifiBssidBlocklistMonitorBaseBlockDurationMs ou config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs , dependendo do RSSI) e aumenta exponencialmente até um limite superior configurável (especificado pelo config_wifiBssidBlocklistMonitorFailureStreakCap sobreposição treakCap). A duração aumenta se ocorrerem falhas continuamente no mesmo BSSID. A duração é a duração base aumentada exponencialmente pela sequência de falhas, ou seja, uma sequência de falhas de 2 implica 4x a duração do bloqueio base.

Os limites para bloqueio de BSSID dependem do motivo da falha e são personalizáveis ​​usando sobreposições:

  • AP rejeita associação usando MBO/OCE Não é possível lidar com o novo código STA : config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold .
  • Falha na validação da Internet por meio desta rede: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold .
  • Código de falha de autenticação de senha incorreta: config_wifiBssidBlocklistMonitorWrongPasswordThreshold .
  • Código de falha de autenticação de falha EAP para redes EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold .
  • Rejeição de associação, outras rejeições de associação geral: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold .
  • Tempo limite de associação: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold .
  • Falha de autenticação, outras falhas gerais de autenticação: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold .
  • Falha de DHCP, falha no provisionamento de DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold .
  • Desconexão anormal, o dispositivo foi desconectado da rede em um período muito curto após a conexão: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold . A janela de tempo é configurável com config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs .

Condições de compensação da lista de bloqueio BSSID

Um BSSID é apagado da lista de bloqueio quando:

  • O Wi-Fi está alternado: todos os BSSIDs são removidos da lista de bloqueio.
  • O usuário toca em uma rede no seletor de Wi-Fi: todos os BSSIDs da rede selecionada pelo usuário são removidos da lista de bloqueio.
  • Tempo limite: os BSSIDs são removidos da lista de bloqueio quando a duração do bloqueio é atingida.
  • Reinicializar: todas as listas de bloqueio são limpas.
  • Rede removida: Todos os BSSIDs associados a esta rede são removidos da lista de bloqueio.

Condições de reinicialização dos contadores de falhas e sequências:

  • Reinicializar: redefinir todos os BSSIDs.
  • Rede removida: redefinição para BSSIDs associados à rede.
  • Sucesso na conexão L2: Redefinir para os seguintes códigos de erro.

    • REASON_AP_UNABLE_TO_HANDLE_NEW_STA
    • REASON_WRONG_PASSWORD
    • REASON_EAP_FAILURE
    • REASON_ASSOCIATION_REJECTION
    • REASON_ASSOCIATION_TIMEOUT
    • REASON_AUTHENTICATION_FAILURE
    • REASON_ABNORMAL_DISCONNECT (desmarcado condicionalmente apenas se a última vez que o dispositivo se conectou a este BSSID foi há mais de 3 horas)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Sucesso na validação da rede: redefine o seguinte código de erro.

    • REASON_NETWORK_VALIDATION_FAILURE
  • Sucesso no provisionamento de DHCP: redefine o seguinte código de erro.

    • REASON_DHCP_FAILURE

Bloqueio de SSID

O bloqueio de SSID funciona de forma semelhante ao bloqueio de BSSID. Um contador de falhas por tipo de falha por rede é incrementado quando ocorrem falhas de conexão (desse tipo). Quando a contagem de falhas de um tipo específico excede um limite, o SSID é bloqueado permanente ou temporariamente com base em uma configuração. A configuração para cada tipo de falha é codificada em WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS e está resumida abaixo.

* Para redes temporariamente desativadas, a duração da desativação muda dinamicamente com base no número de falhas consecutivas de conexão ocorridas na rede. Depois que uma rede falha consecutivamente em se conectar cinco vezes, cada falha subsequente resulta em uma duração de desativação duas vezes maior que a duração anterior. Por exemplo, uma rede com cinco falhas consecutivas fica desabilitada por 5 minutos, depois 10 minutos na sexta falha, 20 minutos na sétima falha e assim por diante até o limite máximo de 18 horas.

Código de falha Descrição Limite Duração básica da desativação* Desativar tipo
DISABLED_DHCP_FAILURE Falha ao provisionar DHCP 5 5 minutos Temporário
DISABLED_NO_INTERNET_TEMPORARY A validação da rede falhou, mas o usuário afirma que deseja continuar se conectando a esta rede no futuro 1 10 minutos Temporário
DISABLED_AUTHENTICATION_NO_CREDENTIALS O requerente não tem credenciais para se conectar à rede 1 N / D Permanente
DISABLED_NO_INTERNET_PERMANENT Padrão para falha de validação de rede 1 N / D Permanente
DISABLED_BY_WIFI_MANAGER Obsoleto e não utilizado 1 N / D Permanente
DISABLED_BY_WRONG_PASSWORD A senha está incorreta e esta rede nunca foi conectada com sucesso 1 N / D Permanente
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Falha de EAP onde o cartão SIM não está inscrito 1 N / D Permanente
DISABLED_ASSOCIATION_REJECTION Falhas de rejeição de associação 5 5 minutos Temporário
DISABLED_AUTHENTICATION_FAILURE Outras falhas de autenticação (ou seja, não é uma senha errada ou uma falha de EAP) 5 5 minutos Temporário
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Falha de EAP específica do provedor (privada). 1 N / D Permanente
DISABLED_NETWORK_NOT_FOUND O suplicante não conseguiu encontrar uma rede nos resultados da verificação que corresponda à rede solicitada pela estrutura para conexão (incluindo recursos de rede). 2 5 minutos Temporário
DISABLED_CONSECUTIVE_FAILURES A rede não conseguiu se conectar cinco ou mais vezes consecutivas. O tipo de falha para essas falhas inclui, entre outros, os tipos de falha listados nesta tabela.
5 5 minutos Temporário

Uma rede temporariamente desativada é reativada quando:

  • A duração da desativação expirou.
  • O usuário seleciona manualmente a rede para se conectar.
  • O usuário alterna o Wi-Fi.
  • O sistema é reinicializado.
  • A rede foi desativada com um RSSI muito baixo, mas posteriormente a rede foi detectada novamente com um RSSI moderado ou superior.

Uma rede permanentemente desativada é reativada quando:

  • O usuário seleciona manualmente a rede para se conectar.

Os contadores de falhas de uma rede são redefinidos quando:

  • A rede é removida.
  • O dispositivo foi conectado com sucesso à rede.
  • A rede foi reativada depois que o tempo de desativação expirou.
  • O usuário seleciona manualmente a rede para se conectar.
  • O sistema é reinicializado.

Cartões de pontuação

Os cartões de pontuação, introduzidos no Android 10, registram estatísticas no dispositivo sobre BSSIDs. Os cartões de pontuação são persistidos usando o serviço IpMemoryStore .

Os cartões de pontuação não são usados ​​na seleção de rede do Android 11.

Escolha de conexão do usuário

O Android tem um algoritmo de escolha de conexão do usuário que permite que o processo de seleção prefira redes Wi-Fi às quais um usuário se conectou explicitamente, por exemplo, uma rede doméstica. Os usuários podem preferir essas redes às redes públicas, mesmo quando o desempenho é inferior ao de uma rede pública, porque fornecem serviços adicionais, como a capacidade de controlar dispositivos domésticos.

A preferência do usuário por uma rede é capturada marcando todas as configurações Wi-Fi visíveis e suas intensidades de sinal no momento em que o usuário seleciona uma rede. Se uma das configurações Wi-Fi marcadas for selecionada durante o processo de seleção automática e uma rede selecionada pelo usuário estiver disponível, o algoritmo de escolha de conexão do usuário substituirá a seleção pela rede selecionada pelo usuário se as seguintes condições forem atendidas:

  • A rede de escolha de conexão do usuário tinha acesso à Internet na última vez que foi usada
  • A opção de conexão do usuário tem uma intensidade de sinal que não é pior do que quando foi selecionada originalmente com uma margem de erro. Esta margem de erro pode ser configurada usando a sobreposição config_wifiEstimateRssiErrorMarginDb .

A rede de escolha de conexão do usuário persiste após uma reinicialização. A opção de conexão do usuário funciona para redes salvas, redes Passpoint e redes de sugestões.

Estações simultâneas duplas

Esta seção descreve a seleção de rede Wi-Fi quando um dispositivo suporta conexão simultânea com duas redes Wi-Fi.

Faça antes do intervalo

Se a função make-before-break estiver habilitada, o dispositivo tentará se conectar à nova rede antes de se desconectar da rede antiga. O fluxo make-before-break usa o mesmo algoritmo de seleção de rede que a comutação de rede break-before-make (que ocorre quando o dispositivo se desconecta da rede antiga antes de se conectar à nova). Se o algoritmo de seleção de rede escolher uma rede que não pode ser comutada usando make-before-break, o dispositivo automaticamente volta para break-before-make.

Conexão simultânea restrita e de internet

Se a função de conexão simultânea restrita e de internet estiver habilitada, o dispositivo poderá se conectar a uma rede Wi-Fi secundária restrita que está disponível apenas para aplicativos selecionados configurados pelo fabricante do dispositivo. As instruções para os fabricantes de dispositivos configurarem isso estão em Conexão simultânea restrita e com a Internet .

Quando o algoritmo de seleção de rede detecta resultados de verificação que correspondem à sugestão paga/privada do OEM, ele se conecta automaticamente a ela como uma segunda rede. A seleção de rede para a rede Wi-Fi primária (que fornece conexão à Internet para aplicativos regulares) ocorre normalmente em paralelo.

Perguntas frequentes (FAQ)

  1. As redes seguras têm sempre prioridade sobre as redes abertas?

    Não. Salvas versus sugeridas e medidas versus não medidas são categorias primárias nas quais as redes são avaliadas. Dentro de cada categoria, as redes seguras têm alguma prioridade sobre as redes abertas, mas é dado um peso muito maior à qualidade da ligação.

    A razão é que a segurança real dos dados do usuário é fornecida pela criptografia ponta a ponta (por exemplo, TLS). As redes seguras criptografam apenas a primeira etapa da comunicação e, mesmo assim, para redes com chaves pré-compartilhadas, não oferecem muita privacidade.

  2. Por que as redes salvas são priorizadas em relação às redes sugeridas?

    As redes gratuitas salvas (ilimitadas) são priorizadas em relação às redes livres sugeridas e as redes limitadas salvas são priorizadas em relação às redes limitadas sugeridas.

    As redes salvas têm prioridade sobre as redes sugeridas porque as redes salvas são redes que o usuário adicionou explicitamente ao dispositivo. Isso implica uma preferência por se conectar a essas redes sempre que possível.

    Observe que os usuários podem desabilitar o comportamento de conexão automática para redes salvas individuais, ou seja, indicar que essas redes devem ser utilizadas apenas manualmente e não devem ser consideradas automaticamente pelo dispositivo.

  3. Posso alterar a ordem de prioridade estrita ou removê-la completamente?

    O fabricante do dispositivo pode modificar as decisões de seleção de rede modificando as sobreposições de bônus listadas nas seções acima. No entanto, não é recomendado alterar os valores padrão, pois eles foram escolhidos após consideração cuidadosa de vários casos de uso.