Sélection du réseau Wi-Fi

Cette page décrit les algorithmes et les procédures utilisés dans Android 12 pour sélectionner des réseaux Wi-Fi et basculer entre eux. Android évalue en permanence la qualité du réseau connecté et celle des réseaux disponibles.

Durée de vie d'une association automatique

Cette section explique comment un appareil Android évalue les réseaux Wi-Fi disponibles et s'y connecte.

  1. L'appareil recherche les réseaux disponibles de l'une des manières suivantes, selon que l'écran est allumé ou éteint.

    • Écran allumé (connecté) : le sous-système de connectivité Android évalue régulièrement si la connexion actuelle est suffisamment bonne pour ignorer l'analyse (comme défini dans analyses avec écran allumé). Si la connexion n'est pas assez bonne pour ignorer l'analyse, le sous-système de connectivité déclenche une analyse pour détecter les réseaux disponibles. Ces analyses peuvent également être déclenchées par d'autres composants système, tels que le système de localisation ou une application (y compris l'application Paramètres).
    • Écran allumé (déconnecté) : le sous-système de connectivité Android effectue des analyses périodiques selon un calendrier de report exponentiel. Le module évalue tous les résultats d'analyse reçus et tente de sélectionner le meilleur réseau auquel se connecter.
    • Écran éteint (déconnecté) : le processeur hôte programme le micrologiciel avec une liste de réseaux préférés à l'aide d'analyses PNO (Preferred Network Offload) dès que l'écran s'éteint. Le micrologiciel réactive l'hôte s'il trouve l'un des réseaux préférés. AOSP suppose que PNO est compatible avec l'appareil.

    La méthode WifiManager#allowAutojoinGlobal(boolean) permet de désactiver les connexions automatiques. Il s'agit d'une API privilégiée que les fabricants d'appareils peuvent utiliser dans des circonstances limitées (par exemple, un appareil non mobile et préconfiguré).

    Si l'appareil est connecté et que la superposition config_wifi_framework_enable_associated_network_selection est définie sur false, aucune analyse de connectivité n'est effectuée et les résultats de l'analyse ne déclenchent pas la sélection du réseau. Ce paramètre n'a aucun effet lorsque l'appareil est déconnecté, ce qui signifie que les analyses de connectivité et la sélection du réseau ont toujours lieu.

  2. Les résultats de l'analyse sont évalués.

    • Si l'appareil est connecté à un réseau Wi-Fi, le framework évalue si le réseau actuel est suffisant pour ignorer la sélection du réseau.

      Un réseau est défini comme suffisant pour ignorer la sélection du réseau si l'une des exigences suivantes est remplie :

      • Moins de 10 secondes se sont écoulées depuis la dernière sélection de réseau.
      • L'utilisateur s'est récemment connecté manuellement au réseau (la durée "récemment" est configurable à l'aide de la superposition config_wifiSufficientDurationAfterUserSelectionMilliseconds).
      • L'appareil est connecté à une connexion d'inscription en ligne (OSU).
      • Toutes les conditions suivantes sont remplies :

        • L'indication de l'intensité du signal reçu (RSSI) est supérieure au seuil RSSI requis ou un trafic suffisant transite par la connexion (voir Scans avec écran allumé pour les seuils RSSI et de trafic).
        • Le réseau est validé (connecté à Internet) ou l'utilisateur a autorisé son utilisation sans accès à Internet.
        • Le réseau n'est pas limité.
    • Si le réseau est suffisant pour ignorer la sélection du réseau, aucune autre action n'est effectuée.

    • Si le réseau Wi-Fi auquel l'appareil est connecté n'est pas assez performant ou si l'appareil n'est pas connecté à un réseau, le framework appelle les nominateurs de réseau pour générer une liste de réseaux Wi-Fi candidats auxquels se connecter en fonction des résultats d'analyse filtrés. Les nominateurs de réseau recherchent les configurations Wi-Fi existantes ou en créent de nouvelles pour les réseaux candidats.

    • Les résultats de l'analyse sont filtrés pour supprimer les BSSID dont le RSSI est inférieur au RSSI d'entrée (configurable à l'aide des superpositions config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz et config_wifiFrameworkScoreEntryRssiThreshold6ghz). De plus, les BSSID bloqués sont filtrés. Les BSSID peuvent être bloqués en cas d'échecs de connexion répétés, de déconnexions fréquentes et de demandes explicites du point d'accès de ne pas tenter d'association pendant une certaine période (MBO-OCE). Le blocage du BSSID est décrit dans la section Blocage du SSID et du BSSID.

    • Lorsque l'appareil se déplace rapidement, les résultats de l'analyse sont éventuellement filtrés davantage pour supprimer les BSSID dont le RSSI varie rapidement (ce qui indique qu'ils ne se déplacent pas avec l'appareil). Cette optimisation est configurable à l'aide de config_wifiHighMovementNetworkSelectionOptimizationEnabled (pour activer ou désactiver l'optimisation) et des superpositions config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs et config_wifiHighMovementNetworkSelectionOptimizationRssiDelta, qui configurent l'exigence de stabilité sur les résultats d'analyse (variation du RSSI sur les résultats d'analyse suffisamment espacés dans le temps).

  3. Le framework exécute le module de notation des candidats pour générer un score pour chaque SSID candidat. Les SSID candidats peuvent inclure plusieurs BSSID candidats (générés par les nominateurs de réseau). Le candidat ayant obtenu le score le plus élevé est le candidat retenu.

  4. Le framework exécute l'algorithme user connect choice, qui peut faire d'un réseau sélectionné par l'utilisateur le nouveau candidat gagnant au lieu d'utiliser le candidat gagnant du candidat scorer.

  5. Le framework détermine si le candidat gagnant correspond au réseau associé. Pour qu'une correspondance soit établie, l'une des conditions suivantes doit être remplie :

    • Le candidat retenu et le réseau Wi-Fi connecté ont le même BSSID.
    • Si l'itinérance du micrologiciel est disponible (y compris la fonctionnalité de liste de blocage BSSID), le candidat retenu et le réseau connecté ont le même SSID et le même type de sécurité.

    Si le candidat gagnant correspond au réseau associé, aucune autre action n'est requise. Si le candidat gagnant ne correspond pas au réseau, l'appareil s'associe au candidat gagnant.

Évaluation d'un réseau connecté

Le framework ou le micrologiciel Android évalue périodiquement la qualité du réseau connecté. Cette section décrit comment le réseau connecté est évalué lorsque l'écran est allumé ou éteint.

Cette évaluation s'ajoute à la sélection du réseau abordée dans les sections précédentes.

Écran activé

Le framework Android évalue le réseau connecté de la manière suivante :

  1. Le service Wi-Fi interroge les statistiques RSSI et de couche liaison toutes les trois secondes (configurable à l'aide de la superposition config_wifiPollRssiIntervalMilliseconds).

    Si l'ajustement dynamique de l'intervalle est activé à l'aide de la superposition config_wifiAdjustPollRssiIntervalEnabled, l'intervalle d'interrogation change de manière dynamique en fonction de l'état de mobilité de l'appareil et du RSSI.

    • L'intervalle d'interrogation est étendu à six secondes (configuré par la superposition config_wifiPollRssiLongIntervalMilliseconds) lorsque l'appareil est immobile et que le RSSI est supérieur à -68 dBm (configuré par les superpositions config_wifiClientRssiMonitorThresholdDbm et config_wifiClientRssiMonitorHysteresisDb).
    • L'intervalle d'interrogation est ramené à trois secondes (configuré par la superposition config_wifiPollRssiIntervalMilliseconds) lorsque l'appareil n'est pas immobile ou que le RSSI est inférieur à -73 dBm (configuré par la superposition config_wifiClientRssiMonitorThresholdDbm).
  2. Le service Wi-Fi calcule un score de connexion en fonction des statistiques RSSI et de la couche liaison.

  3. Le service Wi-Fi transmet le score au service de connectivité, qui l'utilise pour déterminer s'il doit se connecter à un réseau Wi-Fi ou à un autre type de réseau disponible, tel qu'un réseau mobile.

Écran désactivé

Le framework n'initie pas d'évaluation sur le réseau connecté, mais le processus de sélection du réseau peut toujours avoir lieu si des analyses sont initiées par d'autres composants (par exemple, les services de localisation). Le micrologiciel évalue la qualité du réseau. Si elle est mauvaise, il peut passer à un autre réseau ou (éventuellement) se dissocier du réseau et réactiver l'hôte.

Analyses de la connectivité

Les analyses sont effectuées automatiquement selon que l'écran de l'appareil est allumé, éteint et connecté au Wi-Fi, ou éteint et non connecté au Wi-Fi.

Écran activé

Le framework déclenche des décisions d'analyse à des intervalles croissants lorsque l'écran est allumé. Les intervalles de décision d'analyse sont configurés avec les superpositions config_wifiDisconnectedScanIntervalScheduleSec, config_wifiConnectedScanIntervalScheduleSec et config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (qui sont des tableaux d'entiers). Par défaut, les analyses sont effectuées à l'aide d'intervalles de backoff exponentiel de 20, 40, 80 et 160 secondes, les analyses suivantes pouvant être effectuées à des intervalles de 160 secondes (il s'agit des valeurs par défaut de ces superpositions).

Les intervalles d'analyse de l'interruption exponentielle sont réinitialisés et redémarrent à 20 secondes chaque fois que l'état de l'écran change, c'est-à-dire lorsque l'écran est activé ou désactivé.

(Android 13 ou version ultérieure) Si différents intervalles d'analyse sont nécessaires au moment de l'exécution, une application privilégiée OEM peut appeler l'API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) pour définir dynamiquement le programme d'analyse lorsque l'écran est allumé.

La décision d'exécuter ou d'ignorer une analyse dépend de la qualité de la connexion réseau actuelle (suffisamment bonne pour ignorer l'analyse). Une connexion est suffisamment bonne pour ignorer l'analyse si l'une des exigences suivantes est remplie :

  • L'appareil est connecté à une connexion d'inscription en ligne (OSU).
  • Un volume de trafic suffisant transite par la connexion (voir les seuils de trafic plus loin).
  • Le RSSI est supérieur au seuil de RSSI requis (voir les seuils de RSSI plus loin), et la sélection du réseau a été effectuée récemment (10 minutes par défaut, mais peut être configurée à l'aide de la superposition config_wifiConnectedHighRssiScanMinimumWindowSizeSec), et le réseau est validé (connecté à Internet) ou approuvé par l'utilisateur pour une utilisation sans accès à Internet.

Les seuils de RSSI et de trafic sont les suivants :

  • Le RSSI est supérieur à -73 dBm pour la bande 2,4 GHz, configurée avec la superposition config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, ou à -70 dBm pour les bandes 5 GHz et 6 GHz, configurées avec les superpositions config_wifi_framework_wifi_score_low_rssi_threshold_5GHz et config_wifiFrameworkScoreLowRssiThreshold6ghz.
  • Le trafic (transmission ou réception) est supérieur à 16 paquets par seconde (pps) configurés avec la superposition config_wifiFrameworkMinPacketPerSecondActiveTraffic.

Lorsque l'appareil est connecté et que l'écran est allumé, un programme de notation connecté surveille régulièrement la qualité du Wi-Fi en examinant des signaux tels que le RSSI et le nombre de paquets transférés. Si la qualité du Wi-Fi est jugée mauvaise (comme indiqué plus loin) et que l'appareil est compatible avec les stations doubles simultanées, une analyse est déclenchée. L'overlay config_wifiLowConnectedScoreThresholdToTriggerScanForMbb peut être utilisé pour configurer le seuil de score qui déclenche l'analyse. La superposition config_wifiLowConnectedScoreScanPeriodSeconds peut être utilisée pour configurer la période de ces analyses.

Écran éteint et connecté au Wi-Fi

Lorsque l'écran est éteint et que l'appareil est connecté à un réseau Wi-Fi, le micrologiciel (Wi-Fi SoC) effectue des analyses d'itinérance. Le framework n'effectue aucune analyse lorsque l'écran est éteint.

Écran éteint et non connecté au Wi-Fi (état déconnecté)

Lorsque l'écran est éteint et que le Wi-Fi est déconnecté, le micrologiciel effectue des analyses PNO pour les SSID. Le framework configure le micrologiciel avec une liste de SSID à rechercher et une liste de canaux sur lesquels effectuer la recherche. Si un SSID configuré est trouvé, le micrologiciel réactive le framework.

Le framework configure également l'intervalle auquel le micrologiciel doit effectuer des analyses PNO, en utilisant l'état de mobilité de l'appareil pour sélectionner différents intervalles d'analyse. Lorsque l'appareil est immobile, l'intervalle est de 60 secondes pour les trois premières analyses (contrôlées par la superposition config_wifiStationaryPnoScanIntervalMillis) et de 180 secondes (un multiplicateur fixe de 3x de la superposition) pour les analyses suivantes. En cas de mobilité élevée, l'intervalle est de 20 secondes pour les trois premières analyses (contrôlées par la superposition config_wifiMovingPnoScanIntervalMillis) et de 60 secondes (un multiplicateur fixe de 3 de la superposition) pour les analyses suivantes.

Personnes désignées par le réseau

Les nominateurs de réseau trouvent ou créent des configurations (WifiConfiguration) pour les réseaux qui :

  • Disponible (d'après les résultats de l'analyse) ou le réseau connecté (qui manque parfois dans les résultats d'analyse instables).
  • Avoir un RSSI minimal. Le RSSI minimal est de -80 dBm pour la bande 2,4 GHz et de -77 dBm pour les bandes 5 GHz et 6 GHz.Il est configurable à l'aide des superpositions config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz et config_wifiFrameworkScoreEntryRssiThreshold6ghz.
  • n'est pas bloqué, par exemple en raison d'échecs de connexion précédents.
  • Le réseau n'indique pas qu'il est inutilisable (par exemple, à l'aide de MBO/OCE).
  • Peut être associé à l'utilisation des identifiants disponibles sur l'appareil.

Les nominateurs de réseau suivants sont utilisés :

  • Nominateur de réseau enregistré : évalue tous les réseaux enregistrés (y compris les abonnements Passpoint enregistrés).
  • Nominator de réseau suggéré : évalue tous les réseaux fournis par les applications à l'aide de l'API Suggestion (y compris les abonnements Passpoint suggérés).

Scoreurs de candidats

Les évaluateurs de candidats évaluent chaque candidat et lui attribuent un score. Le score pour ThroughputScorer (le scoreur par défaut) est basé sur les éléments suivants :

  • Un score de base est calculé en fonction du RSSI, qui est plafonné à -73 dBm pour la bande 2,4 GHz ou à -70 dBm pour les bandes 5 GHz et 6 GHz (configurées avec les superpositions config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz et config_wifiFrameworkScoreLowRssiThreshold6ghz).
  • Un boost de score est calculé en fonction d'une estimation du débit dérivée de la technologie, de la fréquence du canal, de la bande passante, du RSSI, des conditions du canal, du nombre maximal de flux spatiaux et d'autres paramètres. Le bonus de score est configurable à l'aide des superpositions config_wifiFrameworkThroughputBonusNumerator et config_wifiFrameworkThroughputBonusDenominator, et est limité à une valeur maximale spécifiée à l'aide de la superposition config_wifiFrameworkThroughputBonusLimit.
  • Un réseau candidat récemment sélectionné par l'utilisateur ou par une application reçoit un score élevé pendant une durée configurable à l'aide de la superposition config_wifiFrameworkLastSelectionMinutes (pendant cette durée, le réseau est vérifié comme étant sélectionné par rapport aux réseaux non sélectionnés par l'utilisateur).
  • Un candidat correspondant au réseau actuel reçoit un boost de score configuré par les superpositions config_wifiFrameworkCurrentNetworkBonusMin et config_wifiFrameworkCurrentNetworkBonusPercent (il reçoit un bonus supplémentaire basé sur un pourcentage de son score basé sur le RSSI et le débit, jusqu'au minimum configurable).
  • Un réseau sécurisé obtient un score plus élevé qu'un réseau ouvert. Le bonus est configuré à l'aide du calque config_wifiFrameworkSecureNetworkBonus.
  • Un réseau non facturé à l'usage (sans frais) obtient un score plus élevé qu'un réseau facturé à l'usage (payant). Le bonus est configuré à l'aide de la superposition config_wifiFrameworkUnmeteredNetworkBonus.
  • Un réseau enregistré est mieux noté qu'un réseau suggéré à l'aide de l'API Suggestion. Le bonus est configuré à l'aide de la superposition config_wifiFrameworkSavedNetworkBonus.
  • Les réseaux non fiables (qui peuvent être demandés dans l'API Suggestions) sont moins bien notés que les autres réseaux.
  • Un réseau qui a été détecté comme n'ayant pas d'accès à Internet reçoit un score de 0 si l'appareil est connecté à un autre réseau ayant accès à Internet.

Le bonus par défaut pour les contenus enregistrés par rapport aux suggestions et pour les contenus non soumis à un forfait par rapport à ceux qui y sont soumis (c'est-à-dire les valeurs de superposition par défaut) produit un ordre de priorité strict pour les contenus enregistrés, suggérés, soumis à un forfait et non soumis à un forfait :

  1. Réseaux non facturés à l'usage enregistrés
  2. Réseaux non facturés à l'usage suggérés
  3. Réseaux facturés à l'usage enregistrés
  4. Réseaux facturés à l'usage suggérés

Cela signifie qu'un réseau non facturé (sans frais) enregistré est toujours sélectionné avant un réseau facturé (payant) enregistré. Le bonus de score récemment sélectionné (par l'utilisateur ou l'application) peut remplacer cette priorité stricte.

Le framework peut avoir plusieurs scoreurs candidats installés, mais un seul peut être actif à la fois. Les autres scores peuvent être utilisés pour les métriques (afin d'étudier d'autres algorithmes). Dans Android 11, le scoreur par défaut est ThroughputScorer.

Blocage des SSID et des BSSID

Le framework peut bloquer les SSID ou les BSSID, ce qui signifie qu'il ne les prendra pas en compte pour les connexions, que ce soit temporairement ou définitivement.

Blocage du BSSID

Le blocage du BSSID fonctionne en conservant deux compteurs d'échecs, un compteur d'échecs continus et un compteur de série, par type d'échec spécifique (voir plus loin pour obtenir la liste des types d'échec). Lorsqu'un échec se produit :

  • Le compteur du type d'échec correspondant est incrémenté.
  • Si le seuil d'échec pour ce type d'échec est atteint :
    • Le BSSID est bloqué.
    • Le compteur de série pour l'échec est incrémenté.

La durée pendant laquelle un BSSID est bloqué commence par une valeur de base configurable. Cette valeur de base est spécifiée par les calques config_wifiBssidBlocklistMonitorBaseBlockDurationMs ou config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs, en fonction du RSSI. La durée augmente ensuite de manière exponentielle jusqu'à une limite supérieure configurable spécifiée par le calque config_wifiBssidBlocklistMonitorFailureStreakCap. La durée augmente si des échecs se produisent en continu sur le même BSSID. La durée correspond à la durée de base augmentée de manière exponentielle par la série d'échecs. Par exemple, une série d'échecs de 2 implique une durée de bloc quatre fois supérieure à la durée de base.

Les seuils de blocage des BSSID dépendent du motif de l'échec et sont personnalisables à l'aide de calques :

  • Le point d'accès refuse l'association à l'aide du code MBO/OCE Unable to handle new STA (Impossible de gérer la nouvelle STA) : config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold.
  • La validation Internet via ce réseau a échoué : config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold.
  • Code d'échec de l'authentification avec mot de passe incorrect : config_wifiBssidBlocklistMonitorWrongPasswordThreshold.
  • Code d'échec de l'authentification EAP pour les réseaux EAP : config_wifiBssidBlocklistMonitorEapFailureThreshold.
  • Refus d'association, autres refus d'association généraux : config_wifiBssidBlocklistMonitorAssociationRejectionThreshold.
  • Délai avant expiration de l'association : config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold.
  • Échec de l'authentification, autres échecs d'authentification généraux : config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • Échec du DHCP, échec du provisionnement du DHCP : config_wifiBssidBlocklistMonitorDhcpFailureThreshold.
  • Déconnexion anormale : l'appareil s'est déconnecté du réseau très peu de temps après s'y être connecté : config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. La période est configurable avec config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs.

Conditions d'effacement de la liste de blocage des BSSID

Un BSSID est supprimé de la liste de blocage lorsque :

  • Lorsque le Wi-Fi est activé ou désactivé, tous les BSSID sont supprimés de la liste de blocage.
  • Lorsqu'un utilisateur appuie sur un réseau dans le sélecteur Wi-Fi, tous les BSSID du réseau sélectionné sont supprimés de la liste de blocage.
  • Lorsque la durée de blocage est atteinte (délai d'inactivité), les BSSID sont supprimés de la liste de blocage.
  • Lorsque le système redémarre, toutes les listes de blocage sont effacées.
  • Lorsqu'un réseau est supprimé, tous les BSSID associés à ce réseau sont supprimés de la liste de blocage.

Conditions de réinitialisation des compteurs d'échecs et de séries :

  • Lorsque le système redémarre, les compteurs sont réinitialisés pour tous les BSSID.
  • Lorsqu'un réseau est supprimé, les compteurs sont réinitialisés pour les BSSID associés à ce réseau.
  • Lorsqu'une connexion L2 réussit, les compteurs sont réinitialisés pour les codes d'erreur suivants :

    • 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 (effacé conditionnellement uniquement si la dernière fois que l'appareil s'est connecté à ce BSSID remonte à plus de trois heures)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Lorsque la validation du réseau réussit, les compteurs sont réinitialisés pour le code d'erreur suivant :

    • REASON_NETWORK_VALIDATION_FAILURE
  • Lorsque le provisionnement DHCP réussit, les compteurs sont réinitialisés pour le code d'erreur suivant :

    • REASON_DHCP_FAILURE

Blocage des SSID

Le blocage du SSID fonctionne de la même manière que le blocage du BSSID. Un compteur d'échecs est incrémenté pour chaque type d'échec et chaque réseau lorsque des échecs de connexion de ce type se produisent. Lorsque le nombre d'échecs d'un type particulier dépasse un seuil, le SSID est bloqué de manière permanente ou temporaire en fonction d'une configuration. La configuration de chaque type d'échec est codée dans WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS et résumée dans le tableau suivant.

* Pour les réseaux temporairement désactivés, la durée de désactivation change de manière dynamique en fonction du nombre d'échecs de connexion consécutifs rencontrés sur le réseau. Si un réseau ne parvient pas à se connecter cinq fois de suite, chaque échec ultérieur entraîne une durée de désactivation deux fois plus longue que la durée précédente. Par exemple, un réseau ayant enregistré cinq échecs consécutifs est désactivé pendant cinq minutes, puis pendant dix minutes au sixième échec, pendant vingt minutes au septième échec, et ainsi de suite jusqu'à la limite maximale de 18 heures.

Code d'échec Description Seuil Durée de désactivation de base* Désactiver le type
DISABLED_DHCP_FAILURE Échec du provisionnement DHCP 5 5 minutes Temporaire
DISABLED_NO_INTERNET_TEMPORARY La validation du réseau a échoué, mais l'utilisateur indique qu'il souhaite continuer à se connecter à ce réseau à l'avenir 1 10 minutes Temporaire
DISABLED_AUTHENTICATION_NO_CREDENTIALS Le supplicant ne dispose pas des identifiants nécessaires pour se connecter au réseau. 1 N/A Permanente
DISABLED_NO_INTERNET_PERMANENT Valeur par défaut en cas d'échec de la validation du réseau 1 N/A Permanente
DISABLED_BY_WIFI_MANAGER Obsolète et inutilisé 1 N/A Permanente
DISABLED_BY_WRONG_PASSWORD Le mot de passe est incorrect et ce réseau n'a jamais été connecté 1 N/A Permanente
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Échec de l'EAP lorsque la carte SIM n'est pas abonnée 1 N/A Permanente
DISABLED_ASSOCIATION_REJECTION Échecs de refus d'association 5 5 minutes Temporaire
DISABLED_AUTHENTICATION_FAILURE Autres échecs d'authentification (c'est-à-dire autres qu'un mot de passe incorrect ou un échec EAP) 5 5 minutes Temporaire
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Échec du PAE spécifique au fournisseur (privé). 1 N/A Permanente
DISABLED_NETWORK_NOT_FOUND Le demandeur n'a pas trouvé de réseau dans les résultats de l'analyse qui correspond au réseau demandé par le framework pour la connexion (y compris les capacités réseau). 2 5 minutes Temporaire
DISABLED_CONSECUTIVE_FAILURES Le réseau n'a pas réussi à se connecter cinq fois de suite ou plus. Le type d'échec pour ces échecs inclut, sans s'y limiter, les types d'échec listés dans ce tableau.
5 5 minutes Temporaire

Un réseau temporairement désactivé est réactivé dans les cas suivants :

  • La durée de la désactivation est écoulée.
  • L'utilisateur sélectionne manuellement le réseau auquel se connecter.
  • L'utilisateur active ou désactive le Wi-Fi.
  • Le système redémarre.
  • Le réseau a été désactivé à un RSSI très faible, mais il est détecté à nouveau à un RSSI modéré ou plus élevé.

Un réseau désactivé de manière permanente est réactivé lorsque :

  • L'utilisateur sélectionne manuellement le réseau auquel se connecter.

Les compteurs d'échecs d'un réseau sont réinitialisés dans les cas suivants :

  • Le réseau est supprimé.
  • L'appareil s'est bien connecté au réseau.
  • Le réseau a été réactivé après l'expiration de la durée de désactivation.
  • L'utilisateur sélectionne manuellement le réseau auquel se connecter.
  • Le système redémarre.

Tableaux de données

Les fiches de score, introduites dans Android 10, enregistrent les statistiques sur l'appareil concernant les BSSID. Les fiches de score sont conservées à l'aide du service IpMemoryStore.

Les fiches de score ne sont pas utilisées dans la sélection du réseau Android 11.

Choix de connexion de l'utilisateur

Android dispose d'un algorithme de choix de connexion utilisateur qui permet au processus de sélection de privilégier les réseaux Wi-Fi auxquels un utilisateur s'est explicitement connecté, par exemple un réseau domestique. Les utilisateurs peuvent préférer ces réseaux aux réseaux publics, même si leurs performances sont inférieures, car ils fournissent des services supplémentaires tels que la possibilité de contrôler les appareils domotiques.

La préférence de l'utilisateur pour un réseau est enregistrée en marquant toutes les configurations Wi-Fi visibles et la puissance de leur signal au moment où l'utilisateur sélectionne un réseau. Si l'une des configurations Wi-Fi marquées est sélectionnée lors du processus de sélection automatique et qu'un réseau sélectionné par l'utilisateur est disponible, l'algorithme de choix de connexion de l'utilisateur remplace la sélection par le réseau sélectionné par l'utilisateur si les conditions suivantes sont remplies :

  • Le réseau de connexion choisi par l'utilisateur avait accès à Internet lors de sa dernière utilisation.
  • Le choix de connexion de l'utilisateur présente une intensité du signal qui n'est pas inférieure à celle qui avait été initialement sélectionnée, avec une marge d'erreur. Cette marge d'erreur peut être configurée à l'aide de la superposition config_wifiEstimateRssiErrorMarginDb.

Le choix de réseau de l'utilisateur persiste après un redémarrage. Le choix de connexion de l'utilisateur fonctionne pour les réseaux enregistrés, les réseaux Passpoint et les réseaux suggérés.

Deux stations simultanées

Cette section décrit la sélection du réseau Wi-Fi lorsqu'un appareil permet de se connecter à deux réseaux Wi-Fi simultanément.

Make-before-break

Si la fonction make-before-break est activée, l'appareil tente de se connecter au nouveau réseau avant de se déconnecter de l'ancien. Le flux "make-before-break" utilise le même algorithme de sélection du réseau que le changement de réseau "break-before-make" (lorsque l'appareil se déconnecte de l'ancien réseau avant de se connecter au nouveau). Si l'algorithme de sélection du réseau choisit un réseau qui ne peut pas être commuté à l'aide de la méthode "make-before-break", l'appareil revient automatiquement à la méthode "break-before-make".

Connexion Internet et accès restreint simultanés

Si la fonction Connexion Internet et réseau Wi-Fi secondaire limité simultanés est activée, l'appareil peut se connecter à un réseau Wi-Fi secondaire limité qui n'est disponible que pour certaines applications configurées par le fabricant de l'appareil. Les instructions permettant aux fabricants d'appareils de configurer cette fonctionnalité sont disponibles dans Connexion Internet et connexion restreinte simultanées.

Lorsque l'algorithme de sélection du réseau détecte des résultats d'analyse correspondant à la suggestion privée ou payante de l'OEM, il s'y connecte automatiquement en tant que deuxième réseau. La sélection du réseau Wi-Fi principal (qui fournit une connexion Internet aux applications standards) s'effectue normalement en parallèle.

Questions fréquentes

  1. Les réseaux sécurisés sont-ils toujours prioritaires par rapport aux réseaux ouverts ?

    Non. Les catégories "Enregistré vs suggéré" et "Facturé à l'usage vs non facturé à l'usage" sont les principales catégories dans lesquelles les réseaux sont évalués. Dans chaque catégorie, les réseaux sécurisés ont une certaine priorité sur les réseaux ouverts, mais la qualité de la connexion est beaucoup plus importante.

    En effet, la sécurité des données utilisateur réelles est assurée par le chiffrement de bout en bout (TLS, par exemple). Les réseaux sécurisés ne chiffrent que la première partie de la communication et, même dans ce cas, ils n'offrent pas beaucoup de confidentialité pour les réseaux avec des clés prépartagées.

  2. Pourquoi les réseaux enregistrés sont-ils prioritaires par rapport aux réseaux suggérés ?

    Les réseaux sans frais (non facturés à l'usage) enregistrés sont prioritaires sur les réseaux sans frais suggérés, et les réseaux facturés à l'usage enregistrés sont prioritaires sur les réseaux facturés à l'usage suggérés.

    Les réseaux enregistrés sont prioritaires sur les réseaux suggérés, car ce sont des réseaux que l'utilisateur a ajoutés explicitement à l'appareil. Cela implique une préférence pour la connexion à ces réseaux lorsque cela est possible.

    Notez que les utilisateurs peuvent désactiver le comportement de connexion automatique pour les réseaux enregistrés individuels. En d'autres termes, ils peuvent indiquer que ces réseaux ne doivent être utilisés que manuellement et ne doivent pas être pris en compte automatiquement par l'appareil.

  3. Puis-je modifier l'ordre de priorité strict ou le supprimer complètement ?

    Vous pouvez modifier les décisions de sélection de réseau en modifiant les calques bonus listés dans les sections précédentes. Toutefois, il n'est pas recommandé de modifier les valeurs par défaut, car elles ont été choisies après un examen minutieux de plusieurs cas d'utilisation.