Seleção de rede Wi-Fi

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 das redes disponíveis.

Vida útil 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 verifica se há redes disponíveis de uma das maneiras a seguir, dependendo da tela estar ativada ou não.

    • Tela ligada (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 com a tela ligada. Se a conexão não for boa o suficiente para pular 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 app (incluindo o app Configurações).
    • Tela ligada (desconectado): o subsistema de conectividade do Android emite verificações periódicas seguindo uma programação de defasagem exponencial. O módulo avalia todos os resultados de verificação recebidos e tenta selecionar a melhor rede para se conectar.
    • Tela desligada (desconectada): a CPU do host programa o firmware com uma lista de redes preferenciais usando buscas de redes preferenciais (PNO, na sigla em inglês) assim que a tela é desligada. O firmware ativa o host se encontrar qualquer uma das redes preferenciais. O AOSP pressupõe que o PNO tem suporte no dispositivo.

    O método WifiManager#allowAutojoinGlobal(boolean) pode ser usado para desativar conexões automáticas. Essa é 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, nenhum teste de conectividade será realizado e os resultados do teste não acionam a seleção de rede. Essa 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, o framework vai avaliar 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 se conectou manualmente à rede recentemente (onde "recentemente" é configurável usando a sobreposição config_wifiSufficientDurationAfterUserSelectionMilliseconds).
      • O dispositivo está conectado a uma conexão de inscrição on-line (OSU, na sigla em inglês).
      • Todos os requisitos a seguir são atendidos:

        • O RSSI está acima do limite necessário ou o tráfego suficiente está fluindo pela conexão. Consulte verificações de tela ativa para RSSI e limites de tráfego.
        • A rede é validada (conectada à Internet) ou foi aprovada pelo usuário para uso sem acesso à Internet.
        • A rede não tem medição.
    • Se a rede for boa o suficiente para pular a seleção de rede, nenhuma outra ação 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, o framework vai chamar os nominadores de rede para gerar uma lista de redes Wi-Fi candidatas para se conectar com base nos resultados da verificação filtrada. Os proponentes 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 do RSSI de entrada (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 de conexão repetidas, desconexões frequentes e solicitações explícitas do AP para não tentar a associação por um determinado período (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 filtrados adicionalmente para remover BSSIDs cujo RSSI varia rapidamente (indicação de que eles não estão se movendo 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 em resultados de verificação suficientemente separados no tempo).

  3. O framework executa o classificador de candidatos para gerar uma pontuação para cada candidato de identificador de conjunto de serviços (SSID). Os candidatos do SSID podem incluir vários candidatos de identificador de conjunto de serviços básico (BSSID, na sigla em inglês) gerados pelos nomeadores de rede. O candidato com a maior pontuação é o candidato vencedor.

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

  5. O framework determina se o candidato vencedor corresponde à rede conectada no momento. Para ser considerada uma correspondência, uma das seguintes condições precisa ser atendida:

    • O candidato vencedor e a rede Wi-Fi conectada têm o mesmo BSSID.
    • Se o roaming de firmware estiver disponível (incluindo a 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 conectada no momento, nenhuma outra ação será tomada. Se o candidato vencedor não corresponder à rede, o dispositivo será associado ao candidato vencedor.

A conexão de rede automática fica desativada enquanto um app usa a API Wi-Fi Network Request, que substitui o sistema e cria uma LAN sem Internet, exceto em dispositivos com suporte a estações duplas simultâneas.

Avaliação de uma rede conectada

O framework 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 ativada

O framework do Android avalia a rede conectada da seguinte maneira:

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

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

    • O intervalo de pesquisa é estendido para 6 segundos (configurado pela sobreposição config_wifiPollRssiLongIntervalMilliseconds) quando o dispositivo está parado e o RSSI está acima de -68 dBm (configurado pelas sobreposições config_wifiClientRssiMonitorThresholdDbm e config_wifiClientRssiMonitorHysteresisDb).
    • O intervalo de pesquisa é 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 de Wi-Fi calcula uma pontuação de conexão com base nas estatísticas de RSSI e da camada de link.

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

Tela desligada

O framework 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 ela for ruim, o firmware poderá percorrer ou (depois) se desassociar da rede e ativar o host.

Verificações de conectividade

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

Tela ativada

O framework aciona decisões de verificação em intervalos crescentes quando a tela é ativada. Os intervalos de decisão de verificação 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 verificações ocorrem usando intervalos de desistência exponencial de 20, 40, 80 e 160 segundos, com verificações subsequentes possivelmente realizadas em intervalos de 160 segundos (esses são os valores padrão dessas sobreposições).

Os intervalos de verificação de espera 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 e versões mais recentes) Se intervalos de verificação diferentes forem necessários durante a execução, um app privilegiado do OEM poderá chamar a API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) para definir dinamicamente a programação de verificação na tela.

A decisão de executar ou pular uma verificação é baseada em se a conexão de rede atual é boa o suficiente para pular a verificação. 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 on-line (OSU).
  • O tráfego suficiente está fluindo pela conexão (consulte os limites de tráfego abaixo).
  • O RSSI está acima do limite obrigatório de RSSI (consulte os limites de 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 foi validada (conectada à Internet) ou aprovada pelo usuário para uso sem acesso à Internet.

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

  • 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 as sobreposições config_wifi_framework_wifi_score_low_rssi_threshold_5GHz e config_wifiFrameworkScoreLowRssiThreshold6ghz.
  • O tráfego (transmitir ou receber) 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 classificador conectado monitora periodicamente a qualidade do Wi-Fi analisando indicadores como RSSI e o número de pacotes transferidos. Se for determinado que a qualidade do Wi-Fi é ruim (conforme especificado abaixo) e o dispositivo oferecer suporte a 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 verificações.

Tela desligada e conectada ao Wi-Fi

Quando a tela está desligada e o dispositivo está conectado a uma rede Wi-Fi, o firmware (SoC Wi-Fi) realiza verificações de roaming. O framework não realiza verificações quando a tela está desligada.

Tela desligada e sem conexão Wi-Fi (estado desconectado)

Quando a tela está desligada e o Wi-Fi está desconectado, o firmware realiza verificações de PNO para SSIDs. O framework configura o firmware com uma lista de SSIDs a serem buscados e uma lista de canais que podem ser buscados. Se um SSID configurado for encontrado, o firmware vai ativar o framework.

O framework também configura o intervalo em que o firmware precisa realizar verificações de PNO, usando o estado de mobilidade do dispositivo para selecionar intervalos de verificação diferentes. Em um estado de baixa mobilidade (o dispositivo está parado), o intervalo é de 60 segundos para as três primeiras leituras (controladas pela sobreposição config_wifiStationaryPnoScanIntervalMillis) e 180 segundos (um multiplicador fixo de 3x da sobreposição) para leituras subsequentes. Em um estado de alta mobilidade, o intervalo é de 20 segundos para as três primeiras verificações (controladas pela sobreposição config_wifiMovingPnoScanIntervalMillis) e 60 (um multiplicador fixo de 3x da sobreposição) para as verificações subsequentes.

Indicações de rede

Os nomeadores de rede encontram ou criam configurações (WifiConfiguration) para redes que:

  • Disponível (com base nos resultados da verificação) ou na rede conectada (que às vezes não está nos resultados de verificação instáveis).
  • Ter um RSSI mínimo. O 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áveis 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.
  • Não está bloqueada, 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 nomeados de rede são usados:

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

Pontuadores dos candidatos

Os avaliadores de candidatos avaliam e atribuem uma pontuação a cada candidato. A pontuação de ThroughputScorer (o pontuador padrão) é baseada no seguinte:

  • Uma pontuação base é calculada com base no RSSI, em que o RSSI tem um limite de -73 dBm para a banda de 2,4 GHz ou -70 dBm para as bandas de 5 GHz e 6 GHz (configuradas com as sobreposições config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz e config_wifiFrameworkScoreLowRssiThreshold6ghz).
  • Uma otimização de pontuação é calculada com base em uma estimativa de capacidade derivada da tecnologia, frequência do canal, largura de banda, RSSI, condições do canal, número máximo de streams espaciais e outros parâmetros. O aumento de pontuação pode ser configurado 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 app recebe um grande aumento de pontuação por um período configurável usando a sobreposição config_wifiFrameworkLastSelectionMinutes. Durante esse período, a rede é garantida para ser selecionada em vez de redes não selecionadas pelo usuário.
  • Um candidato que corresponde à 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 do RSSI e da pontuação baseada na taxa de transferência, até o mínimo configurável).
  • Uma rede segura tem uma pontuação maior do que uma rede aberta. O bônus é configurado usando a sobreposição config_wifiFrameworkSecureNetworkBonus.
  • Uma rede ilimitada (sem custo financeiro) tem uma pontuação maior do que uma rede com medição (paga). O bônus é configurado usando a sobreposição config_wifiFrameworkUnmeteredNetworkBonus.
  • Uma rede salva tem uma pontuação maior do que uma rede sugerida usando a API Suggestion. O bônus é configurado usando a sobreposição config_wifiFrameworkSavedNetworkBonus.
  • As redes não confiáveis (que podem ser solicitadas como parte da API Suggestion) têm pontuação mais baixa do que qualquer outra rede.
  • Uma rede antes detectada como sem 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 o que foi salvo em comparação com a sugestão e o que não foi medido em comparação com o que foi medido (ou seja, os valores de sobreposição padrão) produzem uma ordem de prioridade rígida para o que foi 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 medição (sem custo financeiro) é sempre selecionada antes de uma rede salva com medição (paga). O bônus de pontuação selecionado recentemente (pelo usuário ou app) pode substituir essa prioridade estrita.

O framework pode ter vários candidatos a pontuação 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 pontuador padrão é ThroughputScorer.

Bloqueio de SSID e BSSID

O framework pode bloquear SSIDs ou BSSIDs, ou seja, não os considera 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ínuas e um contador de sequências, por tipo de falha específico (confira abaixo uma lista de tipos de falhas). Quando ocorre uma falha:

  • O contador do tipo de falha correspondente é incrementado.
  • Se o limite de falha desse tipo for atingido:
    • O BSSID está bloqueado.
    • O contador de sequências de falhas é incrementado.

A duração de um BSSID bloqueado começa com um valor base (configurável) especificado pelas sobreposições config_wifiBssidBlocklistMonitorBaseBlockDurationMs ou config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs, dependendo do RSSI, e aumenta exponencialmente até um limite máximo configurável (especificado pela sobreposição 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 2 falhas implica 4 vezes a duração do bloco base.

Os limites para o bloqueio de BSSID dependem do motivo da falha e podem ser personalizados usando sobreposições:

  • O AP rejeita a associação usando o código MBO/OCE Não é possível processar o novo STA: config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold.
  • Falha na validação da Internet pela rede: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold.
  • Código de falha de autenticação de senha incorreto: config_wifiBssidBlocklistMonitorWrongPasswordThreshold.
  • Código de falha de autenticação de falha de EAP para redes EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold.
  • Rejeição de associação, outras rejeições de associação gerais: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold.
  • Tempo limite de associação: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold.
  • Falha de autenticação, outras falhas gerais de autenticação: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • Falha no DHCP, falha no provisionamento do 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 pode ser configurada com config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs.

Condições de limpeza da lista de bloqueio do BSSID

Um BSSID é limpo da lista de bloqueio quando:

  • O Wi-Fi está ativado: 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.
  • Reiniciar: todas as listas de bloqueio são limpas.
  • Rede removida: todos os BSSIDs associados a essa rede são removidos da lista de bloqueio.

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

  • Reiniciar: redefinir para todos os BSSIDs.
  • Rede removida: redefinição para BSSIDs associados à rede.
  • Sucesso na conexão L2: redefinição 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 apenas se a última vez em que o dispositivo se conectou a esse BSSID foi há mais de três horas)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Validação de rede concluída: é redefinido para o seguinte código de erro.

    • REASON_NETWORK_VALIDATION_FAILURE
  • Provisionamento de DHCP concluído: é redefinido 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 permanentemente ou temporariamente com base em uma configuração. A configuração para cada tipo de falha é codificada em WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS e resumida abaixo.

* Para redes temporariamente desativadas, 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 deixar de se conectar cinco vezes consecutivamente, cada falha subsequente resultará em uma duração de desativação duas vezes maior que a anterior. Por exemplo, uma rede com cinco falhas consecutivas é desativada por 5 minutos, 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 de desativação básica* Desativar tipo
DISABLED_DHCP_FAILURE Falha ao provisionar o DHCP 5 5 minutos Temporária
DISABLED_NO_INTERNET_TEMPORARY A validação da rede falhou, mas o usuário afirma que quer continuar se conectando a essa rede no futuro 1 10 minutos Temporária
DISABLED_AUTHENTICATION_NO_CREDENTIALS O suplicante não tem credenciais para se conectar à rede 1 NA Permanente
DISABLED_NO_INTERNET_PERMANENT Padrão para falha na validação de rede 1 NA Permanente
DISABLED_BY_WIFI_MANAGER Descontinuado e não usado 1 NA Permanente
DISABLED_BY_WRONG_PASSWORD A senha está incorreta e essa rede nunca foi conectada a 1 NA Permanente
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Falha do EAP em que o chip não está inscrito 1 NA Permanente
DISABLED_ASSOCIATION_REJECTION Falhas de rejeição de associação 5 5 minutos Temporária
DISABLED_AUTHENTICATION_FAILURE Outras falhas de autenticação (ou seja, não uma senha errada ou uma falha de EAP) 5 5 minutos Temporária
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Falha de EAP específica do provedor (privada). 1 NA Permanente
DISABLED_NETWORK_NOT_FOUND O solicitante não encontrou uma rede nos resultados da verificação que corresponda à rede solicitada pelo framework para conexão (incluindo os recursos de rede). 2 5 minutos Temporária
DISABLED_CONSECUTIVE_FAILURES A rede não conseguiu se conectar cinco ou mais vezes seguidas. O tipo de falha para essas falhas inclui, entre outros, os tipos de falha listados nesta tabela.
5 5 minutos Temporária

Uma rede temporariamente desativada é reativada quando:

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

Uma rede desativada permanentemente é 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 à rede.
  • A rede foi reativada depois que a duração da desativação expirou.
  • O usuário seleciona manualmente a rede para se conectar.
  • O sistema é reinicializado.

Visão geral

Os cards de pontuação, introduzidos no Android 10, registram estatísticas sobre BSSIDs no dispositivo. Os cards de pontuação são mantidos usando o serviço IpMemoryStore.

As tabelas de pontuação não são usadas 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 dê preferência a redes Wi-Fi a que 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 é menor do que uma rede pública, porque elas oferecem 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 as 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 vai substituir a seleção pela rede selecionada se as condições abaixo forem atendidas:

  • A rede de escolha de conexão do usuário tinha acesso à Internet na última vez que foi usada
  • A escolha de conexão do usuário tem uma intensidade de sinal que não é pior do que quando foi originalmente selecionada 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 do Passpoint e redes de sugestões.

Duas estações simultâneas

Esta seção descreve a seleção de rede Wi-Fi quando um dispositivo oferece suporte à conexão com duas redes Wi-Fi simultaneamente.

Make-before-break

Se a função make-before-break estiver ativada, o dispositivo tentará se conectar à nova rede antes de se desconectar da antiga. O fluxo de ativação antes da interrupção usa o mesmo algoritmo de seleção de rede que a troca de rede de interrupção antes da ativação, 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 possa ser trocada usando a opção "make-before-break", o dispositivo voltará automaticamente para "break-before-make".

Conexão de Internet e restrita simultânea

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

Quando o algoritmo de seleção de rede detecta resultados de verificação que correspondem à sugestão particular ou paga do OEM, ele se conecta automaticamente a ela como uma segunda rede. A seleção de rede para a rede Wi-Fi principal (que fornece conexão de Internet para apps normais) ocorre normalmente em paralelo.

Perguntas frequentes

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

    Não. As categorias principais em que as redes são avaliadas são "salvo" e "sugerida", e "limitada" e "ilimitada". Em cada categoria, as redes seguras têm alguma prioridade sobre as redes abertas, mas a qualidade da conexão é mais importante.

    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 o primeiro trecho 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 vez das sugeridas?

    As redes sem custo financeiro salvas (sem limite) têm prioridade sobre as redes sem custo financeiro sugeridas, e as redes limitadas salvas têm prioridade sobre as redes limitadas sugeridas.

    As redes salvas têm prioridade em relação às sugeridas porque são redes que o usuário adicionou ao dispositivo explicitamente. Isso implica uma preferência para se conectar a essas redes quando possível.

    Os usuários podem desativar o comportamento de conexão automática para redes salvas individuais, ou seja, indicar que essas redes só podem ser usadas manualmente e não podem ser consideradas automaticamente pelo dispositivo.

  3. Posso mudar 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 é recomendável mudar os valores padrão, já que eles foram escolhidos após uma análise cuidadosa de vários casos de uso.