O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Seleção de rede Wi-Fi Android

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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

Isso descreve o processo de como um dispositivo Android avalia e se conecta a 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 ligada (conectada): o subsistema de conectividade do Android avalia regularmente se a conexão atual é boa o suficiente para pular a verificação (conforme definido nas verificações de 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 as 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 uma programação de retirada exponencial. O módulo avalia todos os resultados de varredura recebidos e tenta selecionar a melhor rede à qual se conectar.
    • Tela desligada (desconectada): A CPU do host programa o firmware com uma lista de redes preferenciais usando varreduras de descarregamento de rede preferencial (PNO) assim que a tela for desligada. O firmware ativa o host se encontrar qualquer uma das redes preferenciais. O AOSP assume que o PNO é suportado no dispositivo.

    O 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 não móvel pré-configurado).

    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. Essa configuração não tem efeito quando o dispositivo é desconectado, o que significa que verificações de conectividade e seleção de rede ainda ocorrem.

  2. Os resultados da varredura são avaliados.

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

      Uma rede é definida como boa o suficiente para pular 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 recentemente se conectou manualmente à 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 necessário ou tráfego suficiente está 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 pular 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 chamará os nominadores de rede para gerar uma lista de redes Wi-Fi candidatas às quais se conectar com base nos resultados da verificação filtrada . Os nomeadores de rede encontram as 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 tenham um RSSI abaixo da entrada RSSI (configurável usando as 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 de conexão repetidas, 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 está se movendo 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 varredura (alteração do RSSI sobre os resultados da varredura suficientemente separados no tempo).

  3. A estrutura executa o marcador de candidatos para gerar uma pontuação para cada candidato a identificador de conjunto de serviços (SSID). Os candidatos de SSID podem incluir vários candidatos de identificador de conjunto de serviço básico (BSSID) (gerados pelos nominadores de rede). O candidato com a 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 pontuador do candidato.

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

    • O candidato vencedor e a rede Wi-Fi conectada têm o mesmo BSSID.
    • Se o roaming de firmware estiver disponível (incluindo o recurso 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 de rede automática é 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 oferecem suporte a estações simultâneas duplas.

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.

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

Tela ligada

A estrutura do Android avalia a rede conectada da seguinte maneira:

  1. O serviço Wi-Fi pesquisa estatísticas de RSSI e de camada de link a cada 3 segundos (configurável usando a sobreposição config_wifiPollRssiIntervalMilliseconds ).
  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 usa 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 pode ocorrer se as verificações 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 pode fazer roaming ou (eventualmente) desassociar da rede e ativar o host.

Verificações de conectividade

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

Tela ligada

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

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

(Android 13+) Se forem necessários intervalos de varredura diferentes em tempo de execução, um aplicativo com privilégios de OEM pode chamar a WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) para definir dinamicamente o agendamento de varredura na tela.

A decisão de executar ou pular uma varredura é baseada em se a conexão de rede atual é boa o suficiente para pular a varredura . Uma conexão é boa o suficiente para pular 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 através da conexão (veja os limites de tráfego abaixo).
  • O RSSI está acima do limite RSSI necessário (consulte os limites RSSI abaixo) e a seleção de 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, configurado 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, configurado com o config_wifi_framework_wifi_score_low_rssi_threshold_5GHz e config_wifiFrameworkScoreLowRssiThreshold6ghz overlays.
  • 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 está 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 varredura 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 está desconectado, o firmware executa varreduras PNO para 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 em que 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á parado) o intervalo é de 60 segundos para as três primeiras varreduras (controladas pela sobreposição config_wifiStationaryPnoScanIntervalMillis ) e 180 segundos (um multiplicador 3x fixo 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 3x fixo da sobreposição) segundos para varreduras subsequentes.

Indicadores de rede

Os nomeadores 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 conectada no momento (que às vezes não aparece nos resultados da verificação fragmentada).
  • 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 overlays.
  • Não bloqueado, por exemplo, devido a falhas de conexão anteriores.
  • A rede não indica que é 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:

  • Indicador de rede salva: avalia todas as redes salvas (incluindo assinaturas de Passpoint salvas).
  • Indicador de rede sugerido: avalia todas as redes fornecidas por aplicativos usando a API de sugestão (incluindo assinaturas de Passpoint sugeridas).
  • Indicador de rede com pontuação externa: 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 .

Candidatos pontuadores

Os avaliadores dos candidatos avaliam e fornecem uma pontuação para cada candidato. A pontuação para ThroughputScorer (o pontuador 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 o config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , config_wifi_framework_wifi_score_low_rssi_threshold_5GHz e config_wifiFrameworkScoreLowRssiThreshold6ghz e config_wifiFrameworkScoreLowsThreshold).
  • Um aumento de pontuação é calculado com base em uma estimativa de taxa de transferência 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 uma duração configurável usando a sobreposição config_wifiFrameworkLastSelectionMinutes (por essa duração, a rede tem a garantia de ser selecionada em redes não selecionadas pelo usuário).
  • Um candidato que corresponda à rede atual obtém 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 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 limitada (paga). O bônus é configurado usando a sobreposição config_wifiFrameworkUnmeteredNetworkBonus .
  • Uma rede salva tem 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ão) têm pontuação mais baixa do que qualquer outra rede.
  • Uma rede que foi detectada anteriormente como não tendo Internet recebe uma pontuação de 0 se o dispositivo estiver conectado a outra rede que tenha acesso à Internet.

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

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

Isso significa que uma rede salva sem medida (gratuita) é sempre selecionada antes de uma rede salva com 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 de candidatos instalados, mas apenas um pode estar ativo por vez. Os outros pontuadores podem ser usados ​​para métricas (para investigar algoritmos alternativos). No Android 11, o pontuador padrão é ThroughputScorer .

Bloqueio de SSID e BSSID

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

Bloqueio de BSSID

O bloqueio de 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 de bloqueio de um BSSID 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 overlay config_wifiBssidBlocklistMonitorFailureStreakCap ). A duração aumenta se as falhas ocorrerem 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 em 4x a duração do bloco base.

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

  • O AP rejeita a associação usando o MBO/OCE Não é possível manipular o novo código STA : config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold .
  • A validação da Internet por meio desta rede falhou: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold .
  • Código de falha de autenticação de senha incorreto: 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 gerais de associação: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold .
  • Tempo limite da associação: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold .
  • Falha de autenticação, outras falhas gerais de autenticação: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold .
  • Falha de DHCP, falha ao provisionar 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 limpeza da lista de bloqueio BSSID

Um BSSID é removido da lista de bloqueio quando:

  • O Wi-Fi é 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 para todos os BSSIDs.
  • Rede removida: Redefinir para BSSIDs associados à rede.
  • Sucesso de 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 (limpo condicionalmente somente se a última vez que o dispositivo conectado a este BSSID foi há mais de 3 horas)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Sucesso na validação de rede: redefine para o seguinte código de erro.

    • REASON_NETWORK_VALIDATION_FAILURE
  • Sucesso de provisionamento de DHCP: Redefinições para o seguinte código de erro.

    • REASON_DHCP_FAILURE

Bloqueio de SSID

O bloqueio de SSID funciona de maneira 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 desativadas temporariamente, a duração da desativação muda dinamicamente com base no número de falhas de conexão consecutivas na rede. Depois que uma rede falha consecutivamente ao se conectar cinco vezes, cada falha subsequente resulta em uma duração de desabilitaçã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 da desativação básica* 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 suplicante 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 Descontinuado e sem uso 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 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 EAP específica do provedor (privado). 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 falhou ao se conectar cinco ou mais vezes consecutivas. O tipo de falha para essas falhas inclui, mas não se limita aos tipos de falha listados nesta tabela.
5 5 minutos Temporário

Uma rede temporariamente desativada é reativada quando:

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

Uma rede permanentemente desativada é reativada quando:

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

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

  • A rede é removida.
  • O dispositivo foi conectado com sucesso à rede.
  • A rede foi reativada após o tempo limite da desativação.
  • 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 mantidos 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 em vez de redes públicas, mesmo quando o desempenho é inferior ao de uma rede pública, pois 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 de Wi-Fi visíveis e suas intensidades de sinal no momento em que o usuário seleciona uma rede. Se uma das configurações de 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 em 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. Essa 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 a conexão a duas redes Wi-Fi simultaneamente.

Faça antes do intervalo

Se a função make-before-break estiver habilitada, o dispositivo tenta 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 é 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 o make-before-break, o dispositivo automaticamente volta para o break-before-break.

Restrição simultânea e conexão com a internet

Se a função de conexão simultânea restrita e à Internet estiver ativada, o dispositivo poderá se conectar a uma rede Wi-Fi restrita secundária 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 Concurrent restrito e conexão com a internet .

Quando o algoritmo de seleção de rede detecta resultados de varredura 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 com a Internet para aplicativos comuns) ocorre normalmente em paralelo.

Perguntas frequentes (FAQ)

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

    Não. Salvo versus sugerido e medido versus não medido são as principais categorias nas quais as redes são avaliadas. Dentro de cada categoria, as redes seguras têm alguma prioridade sobre as redes abertas, mas um peso muito maior é dado à qualidade da conexão.

    O motivo é que a segurança real dos dados do usuário é fornecida pela criptografia de 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 fornecem 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 gratuitas 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 para se conectar a essas redes quando possível.

    Observe que os usuários podem desabilitar o comportamento de conexão automática para redes individuais salvas, ou seja, indicar que essas redes devem ser usadas 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, alterar os valores padrão não é recomendado, pois eles foram escolhidos após uma análise cuidadosa de vários casos de uso.