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 de l'un à l'autre. 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 décrit le processus d'évaluation et de connexion d'un appareil Android aux réseaux Wi-Fi disponibles.
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 du 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 backoff 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 des 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 pris en charge sur l'appareil.
La méthode
WifiManager#allowAutojoinGlobal(boolean)
permet de désactiver les connexions automatiques. Il s'agit d'une API privilégiée qui peut être utilisée par les fabricants d'appareils dans des circonstances limitées (par exemple, un appareil non mobile préconfiguré).Si l'appareil est connecté et que la superposition
config_wifi_framework_enable_associated_network_selection
est définie surfalse
, 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.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 suffisamment bon 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 notion de "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 :
- Le RSSI est supérieur 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 approuvé par l'utilisateur pour une 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 connecté à aucun 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
etconfig_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 des BSSID est décrit ci-dessous dans Blocage des SSID et des 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/désactiver l'optimisation) et des superpositionsconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMs
etconfig_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).
Le framework exécute le scoreur de candidats pour générer un score pour chaque SSID (Service Set Identifier) candidat. Les candidats SSID peuvent inclure plusieurs candidats BSSID (identificateur d'ensemble de services de base) générés par les nominateurs de réseau. Le candidat ayant obtenu le score le plus élevé est le candidat gagnant.
Le framework exécute l'algorithme user connect choice (choix de connexion de l'utilisateur), qui peut faire d'un réseau sélectionné par l'utilisateur le nouveau candidat gagnant au lieu d'utiliser le candidat gagnant du scoreur de candidats.
Le framework détermine si le candidat gagnant correspond au réseau actuellement connecté. 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 noire 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 actuellement connecté, aucune autre action n'est requise. Si le candidat gagnant ne correspond pas au réseau, l'appareil est associé au candidat gagnant.
Notez que la connexion réseau automatique est désactivée lorsqu'une application utilise l'API Wi-Fi Network Request, qui remplace le système et crée un réseau local sans accès à Internet, sauf sur les appareils compatibles avec les stations doubles simultanées.
É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 évoquée ci-dessus.
Écran activé
Le framework Android évalue le réseau connecté de la manière suivante :
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 superpositionsconfig_wifiClientRssiMonitorThresholdDbm
etconfig_wifiClientRssiMonitorHysteresisDb
). - L'intervalle d'interrogation est ramené à trois secondes (configuré par la superposition
config_wifiPollRssiIntervalMilliseconds
) lorsque l'appareil n'est pas fixe ou que le RSSI est inférieur à -73 dBm (configuré par la superpositionconfig_wifiClientRssiMonitorThresholdDbm
).
- L'intervalle d'interrogation est étendu à six secondes (configuré par la superposition
Le service Wi-Fi calcule un score de connexion en fonction des statistiques RSSI et de la couche liaison.
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 (à terme) 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 suffisante 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 ci-dessous).
- Le RSSI est supérieur au seuil RSSI requis (voir les seuils RSSI ci-dessous), 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 superpositionsconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHz
etconfig_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 système 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é ci-dessous) et que l'appareil prend en charge les stations doubles simultanées, une analyse est déclenchée. La superposition config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
peut être utilisée 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 3 de la superposition) pour les analyses suivantes. Dans un état de forte mobilité, 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 peut être configuré à l'aide des superpositions
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
etconfig_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 de 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
etconfig_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 boost de score est configurable à l'aide des superpositions
config_wifiFrameworkThroughputBonusNumerator
etconfig_wifiFrameworkThroughputBonusDenominator
, et est limité à une valeur maximale spécifiée à l'aide de la superpositionconfig_wifiFrameworkThroughputBonusLimit
. - Un réseau de candidats récemment sélectionné par l'utilisateur ou par une application reçoit un bonus de score important pendant une durée configurable à l'aide de la superposition
config_wifiFrameworkLastSelectionMinutes
(pendant cette durée, le réseau est garanti d'être 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
etconfig_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 actuellement 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 payants par rapport aux contenus payants (c'est-à-dire les valeurs de superposition par défaut) produit un ordre de priorité strict pour les contenus enregistrés, suggérés, payants et non payants :
- Réseaux non facturés à l'usage enregistrés
- Réseaux non facturés à l'usage suggérés
- Réseaux facturés à l'usage enregistrés
- 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 scorers 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, c'est-à-dire ne pas les prendre en compte pour les connexions, de manière temporaire ou définitive.
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, pour chaque type d'échec spécifique (voir ci-dessous pour obtenir la liste des types d'échecs). 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) (spécifiée par les superpositions config_wifiBssidBlocklistMonitorBaseBlockDurationMs
ou config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
, selon le RSSI), puis augmente de manière exponentielle jusqu'à une limite supérieure configurable (spécifiée par la superposition 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 de base multipliée par 4.
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 avecconfig_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs
.
Conditions d'effacement de la liste de blocage des BSSID
Un BSSID est supprimé de la liste de blocage lorsque :
- Le Wi-Fi est activé : tous les BSSID sont supprimés de la liste de blocage.
- L'utilisateur appuie sur un réseau dans le sélecteur Wi-Fi : tous les BSSID du réseau sélectionné par l'utilisateur sont supprimés de la liste de blocage.
- Délai d'expiration : les BSSID sont supprimés de la liste de blocage lorsque la durée de blocage est atteinte.
- Redémarrage : toutes les listes de blocage sont effacées.
- Réseau 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 :
- Redémarrage : réinitialisez tous les BSSID.
- Réseau supprimé : réinitialisez les BSSID associés au réseau.
Connexion L2 réussie : réinitialisation 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é de manière conditionnelle uniquement si la dernière connexion de l'appareil à ce BSSID remonte à plus de trois heures)REASON_NONLOCAL_DISCONNECT_CONNECTING
Validation du réseau réussie : réinitialise le code d'erreur suivant.
REASON_NETWORK_VALIDATION_FAILURE
Provisionnement DHCP réussi : réinitialise 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 par type d'échec et par réseau est incrémenté 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 est résumée ci-dessous.
* 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 | NA | Permanente |
DISABLED_NO_INTERNET_PERMANENT |
Valeur par défaut en cas d'échec de la validation du réseau | 1 | NA | Permanente |
DISABLED_BY_WIFI_MANAGER |
Obsolète et inutilisé | 1 | NA | Permanente |
DISABLED_BY_WRONG_PASSWORD |
Le mot de passe est incorrect et ce réseau n'a jamais été connecté | 1 | NA | Permanente |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
Échec de l'EAP lorsque la carte SIM n'est pas abonnée | 1 | NA | 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 | NA | 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 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 niveau RSSI très faible, mais il est détecté à nouveau à un niveau 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 cartes de score ne sont pas utilisées dans la sélection de 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 à celles d'un réseau public, car ils fournissent des services supplémentaires tels que la possibilité de contrôler les appareils domestiques.
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 choix de connexion de 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 du calque
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 de 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 restreint simultanés est activée, l'appareil peut se connecter à un réseau Wi-Fi restreint secondaire 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 OEM payante ou privée, 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
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 (par exemple, TLS). Les réseaux sécurisés ne chiffrent que la première partie de la communication et, même dans ce cas, n'offrent pas beaucoup de confidentialité pour les réseaux avec clés prépartagées.
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 par rapport aux réseaux sans frais suggérés, et les réseaux facturés à l'usage enregistrés sont prioritaires par rapport aux réseaux facturés à l'usage suggérés.
Les réseaux enregistrés sont prioritaires sur les réseaux suggérés, car ils ont été ajoutés explicitement à l'appareil par l'utilisateur. 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, c'est-à-dire indiquer que ces réseaux ne doivent être utilisés que manuellement et ne doivent pas être pris en compte automatiquement par l'appareil.
Puis-je modifier l'ordre de priorité strict ou le supprimer complètement ?
Le fabricant de l'appareil peut modifier les décisions de sélection du réseau en modifiant les calques bonus listés dans les sections ci-dessus. Toutefois, il n'est pas recommandé de modifier les valeurs par défaut, car elles ont été choisies après un examen approfondi de plusieurs cas d'utilisation.