Selección de red Wi-Fi

En esta página, se describen los algoritmos y procedimientos que se usan en Android 12 para seleccionar redes Wi-Fi y cambiar entre ellas. Android evalúa de forma continua la calidad de la red conectada y la de las redes disponibles.

Ciclo de vida de una conexión automática

En este artículo, se describe el proceso de cómo un dispositivo Android evalúa y se conecta a las redes Wi-Fi disponibles.

  1. El dispositivo busca redes disponibles de una de las siguientes maneras, según si la pantalla está encendida o apagada.

    • Pantalla encendida (con conexión): El subsistema de conectividad de Android evalúa con frecuencia si la conexión actual es lo suficientemente buena como para omitir el escaneo (como se define en escaneos con la pantalla encendida). Si la conexión no es lo suficientemente buena para omitir el análisis, el subsistema de conectividad activa un análisis para detectar las redes disponibles. Estos análisis también pueden activarse por otros componentes del sistema, como el sistema de ubicación o una app (incluida la app de Configuración).
    • Pantalla encendida (desconectado): El subsistema de conectividad de Android emite análisis periódicos siguiendo un programa de tiempo de espera exponencial. El módulo evalúa todos los resultados de análisis recibidos y trata de seleccionar la mejor red a la que conectarse.
    • Pantalla apagada (desconectada): La CPU del host programa el firmware con una lista de redes preferidas mediante análisis de aligeramiento de red preferido (PNO) en cuanto se apaga la pantalla. El firmware activa el host si encuentra alguna de las redes preferidas. AOSP supone que el PNO es compatible con el dispositivo.

    Se puede utilizar el método WifiManager#allowAutojoinGlobal(boolean) para inhabilitar las conexiones automáticas. Esta es una API con privilegios que los fabricantes de dispositivos pueden usar en circunstancias limitadas (por ejemplo, un dispositivo no móvil y preconfigurado).

    Si el dispositivo está conectado y la superposición config_wifi_framework_enable_associated_network_selection está configurada en false, no se realizan análisis de conectividad y los resultados de los análisis no activan la selección de red. Este parámetro de configuración no tiene efecto cuando el dispositivo está desconectado, lo que significa que los análisis de conectividad y la selección de red aún se producen.

  2. Se evalúan los resultados del análisis.

    • Si el dispositivo está conectado a una red Wi-Fi, el framework evalúa si la red actual es suficientemente buena para omitir la selección de red.

      Una red se define como lo suficientemente buena como para omitir la selección de red si se cumple alguno de los siguientes requisitos:

      • Pasaron menos de 10 segundos desde la última selección de red.
      • El usuario se conectó recientemente a la red de forma manual (el valor de "recientemente" se puede configurar con la superposición config_wifiSufficientDurationAfterUserSelectionMilliseconds).
      • El dispositivo está conectado a una conexión de registro en línea (OSU).
      • Se cumplen todos los siguientes requisitos:

        • El RSSI está por encima del umbral requerido o hay suficiente tráfico en la conexión (consulta análisis con la pantalla encendida para conocer los umbrales de RSSI y tráfico).
        • La red está validada (conectada a Internet) o el usuario la aprobó para usarla sin acceso a Internet.
        • La red no tiene medición.
    • Si la red es lo suficientemente buena como para omitir la selección de red, no se toman más medidas.

    • Si la red Wi-Fi conectada no es lo suficientemente buena o si el dispositivo no está conectado a una red, el framework llama a los nominadores de red para generar una lista de redes Wi-Fi candidatas a las que conectarse en función de los resultados de la búsqueda filtrada. Los nominadores de red encuentran configuraciones de Wi-Fi existentes o crean configuraciones nuevas para las redes candidatas.

    • Los resultados del análisis se filtran para quitar los BSSID que tienen un RSSI debajo del RSSI de la entrada (se puede configurar mediante las superposiciones config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz y config_wifiFrameworkScoreEntryRssiThreshold6ghz). Además, se filtran los BSSID bloqueados. Los BSSID se pueden bloquear en función de fallas de conexión reiteradas, desconexiones frecuentes y solicitudes explícitas del AP para no intentar asociarse durante un período determinado (MBO-OCE). El bloqueo de BSSID se describe a continuación en Bloqueo de SSID y BSSID.

    • Cuando el dispositivo se mueve rápidamente, los resultados de la búsqueda se filtran de forma opcional para quitar los BSSID cuyo RSSI varía rápidamente (indica que no se mueven junto con el dispositivo). Esta optimización se puede configurar con config_wifiHighMovementNetworkSelectionOptimizationEnabled (habilitar o inhabilitar la optimización) y las superposiciones config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs y config_wifiHighMovementNetworkSelectionOptimizationRssiDelta, que configuran el requisito de estabilidad en los resultados del análisis (cambio de RSSI en los resultados del análisis lo suficientemente separados en el tiempo).

  3. El framework ejecuta el calificador de candidatos para generar una puntuación para cada candidato de identificador de conjunto de servicios (SSID). Los candidatos de SSID pueden incluir varios candidatos de identificador de conjunto de servicios básicos (BSSID) (generados por los nominadores de red). El candidato con la puntuación más alta es el candidato ganador.

  4. El framework ejecuta el algoritmo de elección de conexión del usuario, que puede hacer que una red seleccionada por el usuario sea la nueva candidata ganadora en lugar de usar el candidato ganador del marcador de puntuación candidato.

  5. El framework determina si el candidato ganador coincide con la red conectada actualmente. Para que se considere una coincidencia, se debe cumplir una de las siguientes condiciones:

    • El candidato ganador y la red Wi-Fi conectada tienen el mismo BSSID.
    • Si el roaming de firmware está disponible (incluida la función de lista de entidades bloqueadas de BSSID), el candidato ganador y la red conectada tienen el mismo SSID y el mismo tipo de seguridad.

    Si el candidato ganador coincide con la red conectada actualmente, no se realiza ninguna otra acción. Si el candidato ganador no coincide con la red, el dispositivo se asocia con el candidato ganador.

Ten en cuenta que la conexión de red automática se inhabilita mientras una app usa la API de Wi-Fi Network Request, que anula el sistema y crea una LAN sin Internet, excepto en dispositivos que admiten dos estaciones simultáneas.

Evaluación de una red conectada

El framework o el firmware de Android evalúan periódicamente la calidad de la red conectada. En esta sección, se describe cómo se evalúa la red conectada cuando la pantalla está encendida o apagada.

Esta evaluación se realiza además de la selección de red que se analizó anteriormente.

Pantalla encendida

El framework de Android evalúa la red conectada de la siguiente manera:

  1. El servicio de Wi-Fi consulta las estadísticas de RSSI y de la capa de vínculo cada 3 segundos (se puede configurar con la superposición de config_wifiPollRssiIntervalMilliseconds).

    Si el ajuste de intervalo dinámico está habilitado con la superposición config_wifiAdjustPollRssiIntervalEnabled, el intervalo de sondeo cambia de forma dinámica según el estado de movilidad del dispositivo y el RSSI.

    • El intervalo de sondeo se extiende a 6 segundos (configurado por la superposición config_wifiPollRssiLongIntervalMilliseconds) cuando el dispositivo está inmóvil y el RSSI es superior a -68 dBm (configurado por las superposiciones config_wifiClientRssiMonitorThresholdDbm y config_wifiClientRssiMonitorHysteresisDb).
    • El intervalo de sondeo se reduce a 3 segundos (configurado por la superposición config_wifiPollRssiIntervalMilliseconds) cuando el dispositivo no está fijo o el RSSI es inferior a -73 dBm (configurado por la superposición config_wifiClientRssiMonitorThresholdDbm).
  2. El servicio de Wi-Fi calcula una puntuación de conexión en función de las estadísticas de RSSI y de la capa de vínculos.

  3. El servicio de Wi-Fi pasa la puntuación al servicio de conectividad, que la usa para determinar si se debe conectar a una red Wi-Fi o a otro tipo de red disponible, como una red celular.

Pantalla apagada

El framework no inicia una evaluación en la red conectada, pero es posible que el proceso de selección de red aún se produzca si otros componentes inician análisis (por ejemplo, los servicios de ubicación). El firmware evalúa la calidad de la red y, si es mala, es posible que realice roaming o se desasocie (en algún momento) de la red y active el host.

Análisis de conectividad

Los análisis se realizan automáticamente según si el dispositivo tiene la pantalla encendida, la pantalla apagada y está conectado a Wi-Fi, o la pantalla apagada y no está conectado a Wi-Fi.

Pantalla encendida

El framework activa las decisiones de análisis en intervalos crecientes cuando se activa la pantalla. Los intervalos de decisión de análisis se configuran con las superposiciones config_wifiDisconnectedScanIntervalScheduleSec, config_wifiConnectedScanIntervalScheduleSec y config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (que son arrays de números enteros). De forma predeterminada, las búsquedas se realizan con intervalos de tiempo de espera exponenciales de 20, 40, 80 y 160 segundos, y es posible que las búsquedas posteriores se realicen en intervalos de 160 segundos (estos son los valores predeterminados de estas superposiciones).

Los intervalos de análisis de tiempo de espera exponencial se restablecen y reinician a los 20 segundos cada vez que cambia el estado de la pantalla, es decir, cuando se activa o desactiva.

(Android 13 y versiones posteriores) Si se necesitan diferentes intervalos de análisis en el tiempo de ejecución, una app con privilegios de OEM puede llamar a la API de WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) para establecer de forma dinámica el programa de análisis con la pantalla encendida.

La decisión de ejecutar o omitir un análisis se basa en si la conexión de red actual es suficientemente buena para omitir el análisis. Una conexión es lo suficientemente buena como para omitir el análisis si se cumple alguno de los siguientes requisitos:

  • El dispositivo está conectado a una conexión de registro en línea (OSU).
  • Hay suficiente tráfico fluyendo a través de la conexión (consulta los umbrales de tráfico a continuación).
  • El RSSI está por encima del umbral requerido (consulta los umbrales de RSSI a continuación) y la selección de red se realizó recientemente (10 minutos de forma predeterminada, pero se puede configurar con la superposición config_wifiConnectedHighRssiScanMinimumWindowSizeSec). Además, la red está validada (conectada a Internet) o aprobada por el usuario para usarla sin acceso a Internet.

Los umbrales de RSSI y tráfico son los siguientes:

  • El RSSI es superior a -73 dBm para la banda de 2.4 GHz, configurado con la superposición config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, o -70 dBm para las bandas de 5 GHz y 6 GHz, configurado con las superposiciones config_wifi_framework_wifi_score_low_rssi_threshold_5GHz y config_wifiFrameworkScoreLowRssiThreshold6ghz.
  • El tráfico (transmisión o recepción) supera los 16 paquetes por segundo (pps) configurados con la superposición config_wifiFrameworkMinPacketPerSecondActiveTraffic.

Cuando el dispositivo está conectado y la pantalla está encendida. Un generador de puntuación conectado supervisa periódicamente la calidad de la red Wi-Fi a través de indicadores como el RSSI y la cantidad de paquetes transferidos. Si se determina que la calidad de la red Wi-Fi es mala (como se especifica a continuación) y el dispositivo admite dos estaciones simultáneas, se activará un análisis. La superposición config_wifiLowConnectedScoreThresholdToTriggerScanForMbb se puede usar para configurar el umbral de puntuación que activa el análisis. La superposición config_wifiLowConnectedScoreScanPeriodSeconds se puede usar para configurar el período de estas búsquedas.

Pantalla apagada y conectada a Wi-Fi

Cuando la pantalla está apagada y el dispositivo está conectado a una red Wi-Fi, el firmware (Wi-Fi SoC) realiza análisis de roaming. El framework no realiza ningún análisis cuando la pantalla está apagada.

Pantalla apagada y sin conexión a Wi-Fi (estado desconectado)

Cuando la pantalla está apagada y la conexión Wi-Fi está desconectada, el firmware realiza búsquedas de SSID con PNO. El framework configura el firmware con una lista de SSIDs que se deben buscar y una lista de canales en los que se deben buscar. Si se encuentra un SSID configurado, el firmware activa el framework.

El framework también configura el intervalo en el que el firmware debe realizar análisis de PNO, con el estado de movilidad del dispositivo para seleccionar diferentes intervalos de análisis. En un estado de baja movilidad (el dispositivo está inmóvil), el intervalo es de 60 segundos para los primeros tres análisis (controlados por la superposición config_wifiStationaryPnoScanIntervalMillis) y de 180 segundos (un multiplicador fijo de 3 veces de la superposición) para los análisis posteriores. En un estado de alta movilidad, el intervalo es de 20 segundos para los primeros tres análisis (controlados por la superposición config_wifiMovingPnoScanIntervalMillis) y 60 segundos (un multiplicador fijo de 3 veces de la superposición) para los análisis posteriores.

Nominadores de red

Los nominadores de red encuentran o crean configuraciones (WifiConfiguration) para redes con las siguientes características:

  • Disponible (en función de los resultados del análisis) o la red conectada (que a veces no aparece en los resultados del análisis inestables).
  • Tener un RSSI mínimo El RSSI mínimo es de -80 dBm para la banda de 2.4 GHz y de -77 dBm para las bandas de 5 GHz y 6 GHz, que se pueden configurar con las superposiciones config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz y config_wifiFrameworkScoreEntryRssiThreshold6ghz.
  • No se bloqueó, por ejemplo, debido a fallas de conexión anteriores.
  • La red no indica que sea inutilizable (por ejemplo, con MBO/OCE).
  • Se puede asociar con el uso de las credenciales disponibles en el dispositivo.

Se usan los siguientes nominadores de red:

  • Nominador de red guardada: Evalúa todas las redes guardadas (incluidas las suscripciones a Passpoint guardadas).
  • Nominador de red sugerida: Evalúa todas las redes que proporcionan las apps con la API de Suggestion (incluidas las suscripciones sugeridas de Passpoint).
  • Nominador de red con puntuación externa: Es un mecanismo del OEM para proporcionar opciones de conectividad de red al dispositivo. Para obtener más información, consulta Proveedor externo de calificación de red.

Puntuaciones de candidatos

Los candidatos realizan una evaluación y proporcionan una puntuación a cada candidato. La puntuación de ThroughputScorer (el generador de puntuaciones predeterminado) se basa en lo siguiente:

  • Se calcula una puntuación base en función del RSSI, que se limita a -73 dBm para la banda de 2.4 GHz o a -70 dBm para las bandas de 5 GHz y 6 GHz (configurada con las superposiciones config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz y config_wifiFrameworkScoreLowRssiThreshold6ghz).
  • El aumento de la puntuación se calcula en función de una estimación de la capacidad de procesamiento derivada de la tecnología, la frecuencia del canal, el ancho de banda, el RSSI, las condiciones del canal, la cantidad máxima de transmisiones espaciales y otros parámetros. El aumento de puntuación se puede configurar con las superposiciones config_wifiFrameworkThroughputBonusNumerator y config_wifiFrameworkThroughputBonusDenominator, y se limita a un valor máximo especificado con la superposición config_wifiFrameworkThroughputBonusLimit.
  • Una red candidata que el usuario o una app seleccionaron recientemente obtiene un gran aumento de puntuación durante un período configurable con la superposición config_wifiFrameworkLastSelectionMinutes (durante ese tiempo, se garantiza la selección de la red en comparación con las redes no seleccionadas por el usuario).
  • Un candidato que coincida con la red actual obtiene un aumento de puntuación configurado por las superposiciones config_wifiFrameworkCurrentNetworkBonusMin y config_wifiFrameworkCurrentNetworkBonusPercent (obtiene una bonificación adicional en función de un porcentaje de su RSSI y su puntuación basada en la capacidad de procesamiento, hasta el mínimo configurable).
  • Una red segura tiene una puntuación más alta que una red abierta. La bonificación se configura con la superposición config_wifiFrameworkSecureNetworkBonus.
  • Una red no medida (gratuita) obtiene una puntuación más alta que una red medida (pagada). La bonificación se configura con la superposición config_wifiFrameworkUnmeteredNetworkBonus.
  • Una red guardada obtiene una puntuación más alta que una red sugerida con la API de Suggestion. La bonificación se configura con la superposición de config_wifiFrameworkSavedNetworkBonus.
  • Las redes no confiables (que se pueden solicitar como parte de la API de Suggestion) tienen una puntuación más baja que cualquier otra red.
  • Una red que se detectó anteriormente como sin Internet obtiene una puntuación de 0 si el dispositivo está conectado a otra red que tiene acceso a Internet.

La bonificación predeterminada entre guardado en comparación con sugerencia y no medido en comparación con el medido (es decir, los valores de superposición predeterminados) produce un orden de prioridad estricto para guardado, sugerido, medido y no medido:

  1. Redes no medidas guardadas
  2. Redes no medidas sugeridas
  3. Redes de uso medido guardadas
  4. Redes de uso medido sugeridas

Esto significa que siempre se selecciona una red sin medición (gratuita) guardada antes que una red con medición (pagada) guardada. La bonificación de puntuación seleccionada recientemente (por el usuario o la app) puede anular esa prioridad estricta.

El framework puede tener varios evaluadores candidatos instalados, pero solo uno puede estar activo a la vez. Los otros marcadores se pueden usar para las métricas (para investigar algoritmos alternativos). En Android 11, el marcador predeterminado es ThroughputScorer.

Bloqueo de SSID y BSSID

El framework puede bloquear los SSID o BSSID, es decir, no los tiene en cuenta para las conexiones de manera temporal o permanente.

Bloqueo de BSSID

El bloqueo de BSSID funciona manteniendo dos contadores de fallas, un contador de fallas continuas y un contador de rachas, por tipo de falla específico (consulta a continuación para obtener una lista de los tipos de fallas). Cuando se produce una falla, ocurre lo siguiente:

  • Se incrementa el contador del tipo de falla correspondiente.
  • Si se alcanza el umbral de fallas para ese tipo de falla, ocurrirá lo siguiente:
    • El BSSID está bloqueado.
    • Se incrementa el contador de rachas de la falla.

La duración durante la cual se bloquea un BSSID comienza en un valor base (configurable) (especificado por las superposiciones config_wifiBssidBlocklistMonitorBaseBlockDurationMs o config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs, según el RSSI) y aumenta exponencialmente hasta un límite superior configurable (especificado por la superposición config_wifiBssidBlocklistMonitorFailureStreakCap). La duración aumenta si se producen fallas de forma continua en el mismo BSSID. La duración es la duración base multiplicada exponencialmente por la racha de fallas, es decir, una racha de fallas de 2 implica 4 veces la duración del bloque base.

Los umbrales para el bloqueo de BSSID dependen del motivo de la falla y se pueden personalizar con superposiciones:

  • El AP rechaza la asociación con el código MBO/OCE Unable to handle new STA: config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold.
  • No se pudo validar Internet a través de esta red: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold.
  • Código de error de autenticación de contraseña incorrecta: config_wifiBssidBlocklistMonitorWrongPasswordThreshold.
  • Código de error de autenticación de falla de EAP para redes EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold.
  • Rechazo de asociación, otros rechazos generales de asociación: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold.
  • Tiempo de espera de la asociación: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold.
  • Authentication failure, other general authentication failures: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • Falla de DHCP, no se aprovisiona DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold.
  • Desconexión anormal: El dispositivo se desconectó de la red en un período muy corto después de conectarse: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. El período se puede configurar con config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs.

Condiciones de limpieza de la lista de bloqueo de BSSID

Un BSSID se borra de la lista de entidades bloqueadas en los siguientes casos:

  • Se activa la conexión Wi-Fi: Se quitan todos los BSSID de la lista de bloqueo.
  • El usuario presiona una red en el selector de Wi-Fi: Se quitan de la lista de bloqueo todos los BSSID de la red que seleccionó el usuario.
  • Tiempo de espera: Los BSSID se quitan de la lista de bloqueo cuando se alcanza la duración del bloqueo.
  • Reiniciar: Se borraron todas las listas de entidades bloqueadas.
  • Se quitó la red: Se quitaron todos los BSSID asociados con esta red de la lista de bloqueo.

Condiciones de restablecimiento de los contadores de fallas y rachas:

  • Reinicio: Restablece todos los BSSID.
  • Se quitó la red: Se restablece para los BSSID asociados con la red.
  • Conexión correcta a L2: Restablece los siguientes códigos de error.

    • 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 (se borra de forma condicional solo si la última vez que el dispositivo se conectó a este BSSID fue hace más de 3 horas)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Validación de red correcta: Se restablece el siguiente código de error.

    • REASON_NETWORK_VALIDATION_FAILURE
  • Aprovisionamiento de DHCP exitoso: Restablece el siguiente código de error.

    • REASON_DHCP_FAILURE

Bloqueo de SSID

El bloqueo de SSID funciona de manera similar al bloqueo de BSSID. Se incrementa un contador de fallas por tipo de falla por red cuando se producen fallas de conexión (de ese tipo). Cuando el recuento de fallas de un tipo en particular supera un umbral, el SSID se bloquea de forma permanente o temporal según una configuración. La configuración para cada tipo de error se codifica en WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS y se resume a continuación.

* En el caso de las redes inhabilitadas temporalmente, la duración de la inhabilitación cambia de forma dinámica según la cantidad de fallas de conexión consecutivas que se experimentan en la red. Después de que una red no se conecta cinco veces de forma consecutiva, cada falla subsiguiente da como resultado una duración de inhabilitación dos veces mayor que la duración anterior. Por ejemplo, una red con cinco errores consecutivos se inhabilita durante 5 minutos, luego, 10 minutos en la sexta falla, 20 minutos en la séptima falla y así sucesivamente hasta el límite máximo de 18 horas.

Código de falla Descripción Umbral Duración de inhabilitación base* Inhabilita el tipo
DISABLED_DHCP_FAILURE No se pudo aprovisionar el DHCP 5 5 minutos Temporaria
DISABLED_NO_INTERNET_TEMPORARY La validación de la red falló, pero el usuario indica que desea seguir conectándose a esta red en el futuro 1 10 minutos Temporaria
DISABLED_AUTHENTICATION_NO_CREDENTIALS El solicitante no tiene credenciales para conectarse a la red. 1 NA Permanente
DISABLED_NO_INTERNET_PERMANENT Configuración predeterminada para fallas de validación de red 1 NA Permanente
DISABLED_BY_WIFI_MANAGER Obsoleto y sin uso 1 NA Permanente
DISABLED_BY_WRONG_PASSWORD La contraseña es incorrecta y esta red nunca se ha conectado correctamente. 1 NA Permanente
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Falla de EAP cuando la tarjeta SIM no está suscrita 1 NA Permanente
DISABLED_ASSOCIATION_REJECTION Errores de rechazo de asociación 5 5 minutos Temporaria
DISABLED_AUTHENTICATION_FAILURE Otras fallas de autenticación (es decir, no una contraseña incorrecta ni una falla de EAP) 5 5 minutos Temporaria
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Falla de EAP específica del proveedor (privada). 1 NA Permanente
DISABLED_NETWORK_NOT_FOUND El solicitante no encontró una red en los resultados del análisis que coincida con la red solicitada por el framework para la conexión (incluidas las capacidades de red). 2 5 minutos Temporaria
DISABLED_CONSECUTIVE_FAILURES La red no se pudo conectar cinco o más veces de forma consecutiva. El tipo de falla de estas fallas incluye, entre otros, los tipos de fallas que se enumeran en esta tabla.
5 5 minutos Temporaria

Las redes inhabilitadas temporalmente se vuelven a habilitar en los siguientes casos:

  • La duración de inhabilitación ya pasó.
  • El usuario selecciona manualmente la red a la que se conectará.
  • El usuario activa o desactiva la conexión Wi-Fi.
  • Se reinicia el sistema.
  • La red se inhabilitó con un RSSI muy bajo, pero más adelante se vuelve a detectar con un RSSI moderado o más alto.

Una red inhabilitada de forma permanente se vuelve a habilitar en los siguientes casos:

  • El usuario selecciona manualmente la red para conectarse.

Los contadores de fallas de una red se restablecen en los siguientes casos:

  • Se quitará la red.
  • El dispositivo se conectó correctamente a la red.
  • La red se volvió a habilitar después de que se agotó el tiempo de inhabilitación.
  • El usuario selecciona manualmente la red a la que se conectará.
  • Se reinicia el sistema.

Cuadros de evaluación

Las tarjetas de puntuación, que se presentaron en Android 10, registran estadísticas integradas en el dispositivo sobre los BSSID. Las tarjetas de puntuaciones se conservan con el servicio IpMemoryStore.

Las tarjetas de puntuación no se usan en la selección de red de Android 11.

Elección de conexión del usuario

Android tiene un algoritmo de elección de conexión del usuario que permite que el proceso de selección prefiera las redes Wi-Fi a las que un usuario se conectó de forma explícita, por ejemplo, una red doméstica. Los usuarios pueden preferir estas redes en lugar de las públicas, incluso cuando el rendimiento es inferior, porque proporcionan servicios adicionales, como la capacidad de controlar dispositivos domésticos.

La preferencia del usuario por una red se captura marcando todas las configuraciones de Wi-Fi visibles y sus intensidades de señal en el momento en que el usuario selecciona una red. Si se selecciona una de las configuraciones de Wi-Fi marcadas durante el proceso de selección automática y hay disponible una red que seleccionó el usuario, el algoritmo de elección de conexión del usuario anula la selección con la red que seleccionó el usuario si se cumplen las siguientes condiciones:

  • La red de elección de conexión del usuario tenía acceso a Internet la última vez que se usó
  • La intensidad de la señal de la opción de conexión del usuario no es peor que cuando se seleccionó originalmente con un margen de error. Este margen de error se puede configurar con la superposición config_wifiEstimateRssiErrorMarginDb.

La red de selección de conexión del usuario persiste después de un reinicio. La opción de conexión del usuario funciona para redes guardadas, redes de Passpoint y redes de sugerencias.

Estaciones duales simultáneas

En esta sección, se describe la selección de red Wi-Fi cuando un dispositivo admite la conexión a dos redes Wi-Fi de forma simultánea.

Preparación antes del descanso

Si la función make-before-break está habilitada, el dispositivo intenta conectarse a la red nueva antes de desconectarse de la anterior. El flujo de conexión antes de la desconexión usa el mismo algoritmo de selección de red que el cambio de red de desconexión antes de la conexión (que es cuando el dispositivo se desconecta de la red anterior antes de conectarse a la nueva). Si el algoritmo de selección de red elige una red que no se puede cambiar con el proceso de crear antes de la pausa, el dispositivo recurre automáticamente a esa modalidad.

Conexión a Internet y restringida simultánea

Si está habilitada la función de conexión simultánea restringida y a Internet, el dispositivo puede conectarse a una red Wi-Fi secundaria restringida que solo está disponible para apps seleccionadas que configuró el fabricante del dispositivo. Las instrucciones para que los fabricantes de dispositivos configuren esta opción se encuentran en Conexión simultánea restringida y a Internet.

Cuando el algoritmo de selección de red detecta resultados de análisis que coinciden con la sugerencia privada o pagada del OEM, se conecta automáticamente a ella como una segunda red. La selección de red para la red Wi-Fi principal (que proporciona conexión a Internet a las apps normales) se realiza normalmente en paralelo.

Preguntas frecuentes

  1. ¿Las redes seguras siempre tienen prioridad sobre las redes abiertas?

    No. Las categorías principales en las que se evalúan las redes son las de redes guardadas y sugeridas, y de redes de uso medido y no medido. Dentro de cada categoría, las redes seguras tienen cierta prioridad sobre las redes abiertas, pero se le da una importancia mucho mayor a la calidad de la conexión.

    El motivo es que la seguridad real de los datos del usuario la proporciona la encriptación de extremo a extremo (por ejemplo, TLS). Las redes seguras encriptan solo el primer tramo de la comunicación y, aun así, en el caso de las redes con claves precompartidas, no proporcionan mucha privacidad.

  2. ¿Por qué las redes guardadas tienen prioridad sobre las redes sugeridas?

    Las redes gratuitas (no medidas) guardadas tienen prioridad sobre las redes gratuitas sugeridas, y las redes de uso medido guardadas tienen prioridad sobre las redes de uso medido sugeridas.

    Las redes guardadas tienen prioridad sobre las sugeridas porque son redes que el usuario agregó al dispositivo de forma explícita. Eso implica una preferencia para conectarse a estas redes cuando sea posible.

    Ten en cuenta que los usuarios pueden inhabilitar el comportamiento de conexión automática para redes individuales guardadas, es decir, indicar que estas redes solo se deben usar de forma manual y que el dispositivo no debe considerarlas automáticamente.

  3. ¿Puedo cambiar el orden de prioridad estricto o quitarlo por completo?

    El fabricante del dispositivo puede modificar las decisiones de selección de red si modifica las superposiciones de bonificación que se enumeran en las secciones anteriores. Sin embargo, no se recomienda cambiar los valores predeterminados, ya que se eligieron después de considerar cuidadosamente varios casos de uso.