Auf dieser Seite werden die Algorithmen und Verfahren beschrieben, die in Android 12 zum Auswählen und Wechseln zwischen WLANs verwendet werden. Android bewertet kontinuierlich die Qualität des verbundenen Netzwerks und die Qualität verfügbarer Netzwerke.
Lebenszyklus einer automatischen Verbindung
Hier wird beschrieben, wie ein Android-Gerät verfügbare WLANs bewertet und sich mit ihnen verbindet.
Das Gerät sucht auf eine der folgenden Arten nach verfügbaren Netzwerken, je nachdem, ob der Bildschirm ein- oder ausgeschaltet ist.
- Display an (verbunden): Das Android-Subsystem für die Konnektivität prüft regelmäßig, ob die aktuelle Verbindung gut genug ist, um das Scannen zu überspringen (wie in Scans bei eingeschaltetem Display definiert). Wenn die Verbindung nicht gut genug ist, um das Scannen zu überspringen, löst das Subsystem für die Verbindung einen Scan aus, um verfügbare Netzwerke zu erkennen. Diese Scans können auch von anderen Systemkomponenten wie dem Ortungssystem oder einer App (einschließlich der Einstellungen) ausgelöst werden.
- Display an (getrennt): Das Android-Verbindungssubsystem führt in regelmäßigen Abständen Scans durch, die einem exponentiellen Backoff-Zeitplan folgen. Das Modul wertet alle empfangenen Scanergebnisse aus und versucht, das beste Netzwerk für die Verbindung auszuwählen.
- Display aus (getrennt): Die Host-CPU programmiert die Firmware mit einer Liste bevorzugter Netzwerke mithilfe von PNO-Scans (Preferred Network Offload), sobald das Display ausgeschaltet wird. Die Firmware aktiviert den Host, wenn sie eines der bevorzugten Netzwerke findet. AOSP geht davon aus, dass PNO auf dem Gerät unterstützt wird.
Mit der Methode
WifiManager#allowAutojoinGlobal(boolean)
können automatische Verbindungen deaktiviert werden. Dies ist eine privilegierte API, die unter bestimmten Umständen von Geräteherstellern verwendet werden kann, z. B. bei einem nicht mobilen, vorkonfigurierten Gerät.Wenn das Gerät verbunden ist und das
config_wifi_framework_enable_associated_network_selection
-Overlay auffalse
festgelegt ist, werden keine Konnektivitätsscans durchgeführt und Scanergebnisse lösen keine Netzwerkauswahl aus. Diese Einstellung hat keine Auswirkungen, wenn das Gerät getrennt ist. Das bedeutet, dass weiterhin Konnektivitätsscans und die Netzwerkauswahl erfolgen.Die Scanergebnisse werden ausgewertet.
Wenn das Gerät mit einem WLAN verbunden ist, prüft das Framework, ob das aktuelle Netzwerk gut genug ist, um die Netzwerkauswahl zu überspringen.
Ein Netzwerk gilt als gut genug, um die Netzwerkauswahl zu überspringen, wenn eine der folgenden Anforderungen erfüllt ist:
- Seit der letzten Netzwerkauswahl sind weniger als 10 Sekunden vergangen.
- Der Nutzer hat vor Kurzem manuell eine Verbindung zum Netzwerk hergestellt. „Vor Kurzem“ kann mit dem
config_wifiSufficientDurationAfterUserSelectionMilliseconds
-Overlay konfiguriert werden. - Das Gerät ist mit einer OSU-Verbindung (Online Sign Up) verbunden.
Alle folgenden Anforderungen sind erfüllt:
- Der RSSI liegt über dem erforderlichen RSSI-Schwellenwert oder es wird ausreichend Traffic über die Verbindung übertragen (siehe Scans bei eingeschaltetem Display für RSSI- und Traffic-Schwellenwerte).
- Das Netzwerk ist validiert (mit dem Internet verbunden) oder vom Nutzer für die Verwendung ohne Internetzugang genehmigt.
- Das Netzwerk ist nicht getaktet.
Wenn das Netzwerk gut genug ist, um die Netzwerkauswahl zu überspringen, werden keine weiteren Maßnahmen ergriffen.
Wenn das verbundene WLAN nicht gut genug ist oder das Gerät nicht mit einem Netzwerk verbunden ist, ruft das Framework die Netzwerknominatoren auf, um anhand der gefilterten Scanergebnisse eine Liste mit infrage kommenden WLANs zu erstellen, mit denen eine Verbindung hergestellt werden kann. Die Netzwerk-Nominatoren suchen nach vorhandenen WLAN-Konfigurationen oder erstellen neue Konfigurationen für die Kandidatennetzwerke.
Die Scanergebnisse werden gefiltert, um BSSIDs mit einem RSSI unter dem Entry-RSSI zu entfernen (konfigurierbar mit den Overlays
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
undconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
). Außerdem werden blockierte BSSIDs herausgefiltert. BSSIDs können aufgrund wiederholter Verbindungsfehler, häufiger Trennungen und expliziter Anfragen des AP, die Zuordnung für einen bestimmten Zeitraum nicht zu versuchen (MBO-OCE), blockiert werden. Das Blockieren von BSSIDs wird unten unter Blockieren von SSIDs und BSSIDs beschrieben.Wenn sich das Gerät schnell bewegt, werden die Scanergebnisse optional weiter gefiltert, um BSSIDs zu entfernen, deren RSSI sich schnell ändert. Dies deutet darauf hin, dass sie sich nicht mit dem Gerät bewegen. Diese Optimierung kann mit
config_wifiHighMovementNetworkSelectionOptimizationEnabled
konfiguriert werden (Aktivieren/Deaktivieren der Optimierung) sowie mit den Overlaysconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMs
undconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta
, mit denen die Stabilitätsanforderung für Scanergebnisse konfiguriert wird (RSSI-Änderung bei Scanergebnissen, die zeitlich ausreichend voneinander getrennt sind).
Das Framework führt den Candidate Scorer aus, um für jeden SSID-Kandidaten (Service Set Identifier) einen Wert zu generieren. Die SSID-Kandidaten können mehrere BSSID-Kandidaten (Basic Service Set Identifier) enthalten, die von den Netzwerk-Nominatoren generiert werden. Der Kandidat mit der höchsten Punktzahl ist der Gewinnerkandidat.
Das Framework führt den Algorithmus user connect choice (Auswahl der Nutzerverbindung) aus. Dadurch kann ein vom Nutzer ausgewähltes Netzwerk zum neuen Gewinnerkandidaten werden, anstatt den Gewinnerkandidaten aus dem Kandidaten-Scorer zu verwenden.
Das Framework ermittelt, ob der Gewinnerkandidat mit dem aktuell verbundenen Netzwerk übereinstimmt. Damit ein Abgleich als Treffer gilt, muss eine der folgenden Bedingungen erfüllt sein:
- Der beste Kandidat und das verbundene WLAN haben dieselbe BSSID.
- Wenn Firmware-Roaming verfügbar ist (einschließlich der Möglichkeit, BSSIDs auf die schwarze Liste zu setzen), haben der beste Kandidat und das verbundene Netzwerk dieselbe SSID und denselben Sicherheitstyp.
Wenn der beste Kandidat mit dem aktuell verbundenen Netzwerk übereinstimmt, werden keine weiteren Maßnahmen ergriffen. Wenn der Gewinnerkandidat nicht mit dem Netzwerk übereinstimmt, wird das Gerät dem Gewinnerkandidaten zugeordnet.
Die automatische Netzwerkverbindung ist deaktiviert, während eine App die Wi-Fi Network Request API verwendet. Dadurch wird das System überschrieben und ein LAN ohne Internetverbindung erstellt, außer auf Geräten, die zwei gleichzeitige Stationen unterstützen.
Bewertung eines verbundenen Netzwerks
Das Android-Framework oder die Firmware bewerten regelmäßig die Qualität des verbundenen Netzwerks. In diesem Abschnitt wird beschrieben, wie das verbundene Netzwerk bewertet wird, wenn das Display ein- oder ausgeschaltet ist.
Diese Bewertung erfolgt zusätzlich zur oben beschriebenen Netzwerkauswahl.
Bildschirm an
Das Android-Framework bewertet das verbundene Netzwerk so:
Der WLAN-Dienst ruft alle 3 Sekunden RSSI- und Link-Layer-Statistiken ab (konfigurierbar über das Overlay
config_wifiPollRssiIntervalMilliseconds
).Wenn die dynamische Intervallanpassung über das
config_wifiAdjustPollRssiIntervalEnabled
-Overlay aktiviert ist, ändert sich das Polling-Intervall dynamisch basierend auf dem Mobilitätsstatus des Geräts und dem RSSI.- Das Polling-Intervall wird auf 6 Sekunden verlängert (konfiguriert durch das Overlay
config_wifiPollRssiLongIntervalMilliseconds
), wenn das Gerät still steht und der RSSI über -68 dBm liegt (konfiguriert durch die Overlaysconfig_wifiClientRssiMonitorThresholdDbm
undconfig_wifiClientRssiMonitorHysteresisDb
). - Das Polling-Intervall wird wieder auf 3 Sekunden reduziert (konfiguriert durch das
config_wifiPollRssiIntervalMilliseconds
-Overlay), wenn das Gerät nicht stationär ist oder der RSSI unter -73 dBm liegt (konfiguriert durch dasconfig_wifiClientRssiMonitorThresholdDbm
-Overlay).
- Das Polling-Intervall wird auf 6 Sekunden verlängert (konfiguriert durch das Overlay
Der WLAN-Dienst berechnet einen Wert für die Verbindung basierend auf dem RSSI und den Statistiken der Link-Ebene.
Der WLAN-Dienst übergibt die Punktzahl an den Verbindungsdienst, der anhand der Punktzahl entscheidet, ob eine Verbindung zu einem WLAN oder zu einem anderen verfügbaren Netzwerktyp wie einem Mobilfunknetz hergestellt werden soll.
Display ausschalten
Das Framework initiiert keine Bewertung des verbundenen Netzwerks. Der Prozess der Netzwerkauswahl kann jedoch weiterhin stattfinden, wenn Scans von anderen Komponenten (z. B. Standortdiensten) initiiert werden. Die Firmware bewertet die Netzwerkqualität. Wenn die Netzwerkqualität schlecht ist, kann die Firmware das Netzwerk wechseln oder (eventuell) die Verbindung zum Netzwerk trennen und den Host aktivieren.
Konnektivitätsscans
Scans werden automatisch durchgeführt, je nachdem, ob das Display des Geräts ein- oder ausgeschaltet ist und ob das Gerät mit einem WLAN verbunden ist.
Bildschirm an
Das Framework löst Scanentscheidungen in immer größeren Intervallen aus, wenn der Bildschirm eingeschaltet ist. Die Scanentscheidungsintervalle werden mit den Overlays config_wifiDisconnectedScanIntervalScheduleSec
, config_wifiConnectedScanIntervalScheduleSec
und config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec
konfiguriert (das sind Arrays von Ganzzahlen). Standardmäßig werden Scans mit exponentiellen Backoff-Intervallen von 20, 40, 80 und 160 Sekunden durchgeführt. Nachfolgende Scans werden möglicherweise in Intervallen von 160 Sekunden ausgeführt (dies sind die Standardwerte dieser Overlays).
Die exponentiellen Backoff-Scanintervalle werden zurückgesetzt und beginnen bei 20 Sekunden, wenn sich der Bildschirmstatus ändert, d. h. wenn der Bildschirm ein- oder ausgeschaltet wird.
(Android 13 oder höher) Wenn zur Laufzeit unterschiedliche Scanintervalle erforderlich sind, kann eine OEM-privilegierte App die WifiManager#setScreenOnScanSchedule(screenOnScanSchedule)
API aufrufen, um den Scanzeitplan für den eingeschalteten Bildschirm dynamisch festzulegen.
Die Entscheidung, ob ein Scan ausgeführt oder übersprungen wird, hängt davon ab, ob die aktuelle Netzwerkverbindung gut genug ist, um das Scannen zu überspringen. Eine Verbindung ist gut genug, um das Scannen zu überspringen, wenn eine der folgenden Anforderungen erfüllt ist:
- Das Gerät ist mit einer OSU-Verbindung (Online Sign Up) verbunden.
- Über die Verbindung wird ausreichend Traffic übertragen (siehe die Traffic-Grenzwerte unten).
- Der RSSI liegt über dem erforderlichen RSSI-Schwellenwert (siehe RSSI-Schwellenwerte unten) und die Netzwerkauswahl wurde vor Kurzem durchgeführt (standardmäßig 10 Minuten, kann aber mit dem
config_wifiConnectedHighRssiScanMinimumWindowSizeSec
-Overlay konfiguriert werden) und entweder das Netzwerk ist validiert (mit dem Internet verbunden) oder vom Nutzer für die Verwendung ohne Internetzugang genehmigt.
Die RSSI- und Traffic-Grenzwerte sind:
- Der RSSI liegt über -73 dBm für das 2,4‑GHz-Band, das mit dem Overlay
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
konfiguriert ist, oder über -70 dBm für das 5‑GHz- und das 6‑GHz-Band, die mit den Overlaysconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHz
undconfig_wifiFrameworkScoreLowRssiThreshold6ghz
konfiguriert sind. - Der Traffic (Senden oder Empfangen) liegt über 16 Paketen pro Sekunde (pps), die mit dem
config_wifiFrameworkMinPacketPerSecondActiveTraffic
-Overlay konfiguriert wurden.
Wenn das Gerät verbunden ist und das Display aktiviert ist. Ein verbundener Scorer überwacht regelmäßig die WLAN-Qualität anhand von Signalen wie RSSI und der Anzahl der übertragenen Pakete. Wenn die WLAN-Qualität als schlecht eingestuft wird (siehe unten) und das Gerät zwei gleichzeitige Verbindungen unterstützt, wird ein Scan ausgelöst. Mit dem config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
-Overlay kann der Grenzwert für die Punktzahl konfiguriert werden, der das Scannen auslöst. Mit dem config_wifiLowConnectedScoreScanPeriodSeconds
-Overlay kann der Zeitraum dieser Scans konfiguriert werden.
Display ist aus und Gerät ist mit dem WLAN verbunden
Wenn der Bildschirm aus ist und das Gerät mit einem WLAN verbunden ist, führt die Firmware (Wi‑Fi SoC) Roaming-Scans durch. Das Framework führt keine Scans durch, wenn das Display ausgeschaltet ist.
Display aus und keine WLAN-Verbindung (getrennter Zustand)
Wenn das Display ausgeschaltet und die WLAN-Verbindung getrennt ist, führt die Firmware PNO-Scans nach SSIDs durch. Das Framework konfiguriert die Firmware mit einer Liste von SSIDs, nach denen gesucht werden soll, und einer Liste von Kanälen, auf denen gesucht werden soll. Wenn eine konfigurierte SSID gefunden wird, wird das Framework durch die Firmware aktiviert.
Das Framework konfiguriert auch das Intervall, in dem die Firmware PNO-Scans durchführen soll. Dabei wird der Mobilitätsstatus des Geräts verwendet, um verschiedene Scanintervalle auszuwählen.
Bei geringer Mobilität (das Gerät ist stationär) beträgt das Intervall für die ersten drei Scans 60 Sekunden (gesteuert durch das config_wifiStationaryPnoScanIntervalMillis
-Overlay) und für die nachfolgenden Scans 180 Sekunden (ein fester 3‑facher Multiplikator des Overlays). Bei hoher Mobilität beträgt das Intervall 20 Sekunden für die ersten drei Scans (gesteuert durch das config_wifiMovingPnoScanIntervalMillis
-Overlay) und 60 Sekunden (ein fester 3-facher Multiplikator des Overlays) für nachfolgende Scans.
Netzwerknominierer
Die Netzwerk-Nominatoren suchen oder erstellen Konfigurationen (WifiConfiguration
) für Netzwerke, die:
- Verfügbar (basierend auf Scanergebnissen) oder das verbundene Netzwerk (das manchmal in unzuverlässigen Scanergebnissen fehlt).
- Einen minimalen RSSI haben. Der minimale RSSI beträgt -80 dBm für das 2,4‑GHz-Band und -77 dBm für das 5‑GHz- und das 6‑GHz-Band.Er kann mit den Overlays
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
undconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
konfiguriert werden. - Nicht blockiert, z. B. aufgrund vorheriger Verbindungsfehler.
- Das Netzwerk gibt nicht an, dass es nicht verwendet werden kann (z. B. mit MBO/OCE).
- Kann mit der Verwendung der auf dem Gerät verfügbaren Anmeldedaten zusammenhängen.
Die folgenden Netzwerk-Nominatoren werden verwendet:
- Nominator für gespeicherte Netzwerke:Bewertet alle gespeicherten Netzwerke (einschließlich gespeicherter Passpoint-Abos).
- Vorgeschlagenes Netzwerk (Nominator): Bewertet alle Netzwerke, die von Apps über die Suggestion API bereitgestellt werden (einschließlich vorgeschlagener Passpoint-Abos).
Bewertungen von Kandidaten
Die Kandidaten werden von Bewertern bewertet und erhalten eine Punktzahl. Der Wert für ThroughputScorer
(die Standardbewertung) basiert auf Folgendem:
- Eine Basisbewertung wird basierend auf dem RSSI berechnet, wobei der RSSI für das 2,4‑GHz-Band auf -73 dBm und für das 5‑GHz- und 6‑GHz-Band auf -70 dBm begrenzt ist (konfiguriert mit den Overlays
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_low_rssi_threshold_5GHz
undconfig_wifiFrameworkScoreLowRssiThreshold6ghz
). - Die Steigerung der Punktzahl wird auf Grundlage einer Durchsatzschätzung berechnet, die aus der Technologie, der Kanalfrequenz, der Bandbreite, dem RSSI, den Kanalbedingungen, der maximalen Anzahl von Spatial Streams und anderen Parametern abgeleitet wird. Die Steigerung des Scores kann mit den Overlays
config_wifiFrameworkThroughputBonusNumerator
undconfig_wifiFrameworkThroughputBonusDenominator
konfiguriert werden. Sie ist auf einen Höchstwert begrenzt, der mit dem Overlayconfig_wifiFrameworkThroughputBonusLimit
angegeben wird. - Ein Kandidatennetzwerk, das vor Kurzem vom Nutzer oder von einer App ausgewählt wurde, erhält für einen Zeitraum, der mit dem
config_wifiFrameworkLastSelectionMinutes
-Overlay konfiguriert werden kann, einen großen Score-Boost. Während dieses Zeitraums wird das Netzwerk garantiert gegenüber nicht vom Nutzer ausgewählten Netzwerken ausgewählt. - Ein Kandidat, der dem aktuellen Netzwerk entspricht, erhält einen durch die Overlays
config_wifiFrameworkCurrentNetworkBonusMin
undconfig_wifiFrameworkCurrentNetworkBonusPercent
konfigurierten Score-Boost (er erhält einen zusätzlichen Bonus basierend auf einem Prozentsatz seines RSSI- und durchsatzbasierten Scores, bis zum konfigurierbaren Minimum). - Ein sicheres Netzwerk wird besser bewertet als ein offenes Netzwerk. Der Bonus wird über das Overlay
config_wifiFrameworkSecureNetworkBonus
konfiguriert. - Ein Netzwerk mit unbegrenztem Datenvolumen (kostenlos) wird höher bewertet als ein Netzwerk mit begrenztem Datenvolumen (kostenpflichtig).
Der Bonus wird über das Overlay
config_wifiFrameworkUnmeteredNetworkBonus
konfiguriert. - Ein gespeichertes Netzwerk wird höher bewertet als ein Netzwerk, das über die Suggestion API vorgeschlagen wird. Der Bonus wird über das Overlay
config_wifiFrameworkSavedNetworkBonus
konfiguriert. - Nicht vertrauenswürdige Netzwerke (die als Teil der Suggestion API angefordert werden können) werden niedriger bewertet als alle anderen Netzwerke.
- Ein Netzwerk, bei dem zuvor keine Internetverbindung erkannt wurde, erhält den Wert 0, wenn das Gerät derzeit mit einem anderen Netzwerk mit Internetzugriff verbunden ist.
Der Standardbonus für gespeicherte im Vergleich zu vorgeschlagenen und für nicht gemessene im Vergleich zu gemessenen (d. h. die Standard-Overlay-Werte) ergibt eine strenge Prioritätsreihenfolge für gespeicherte, vorgeschlagene, gemessene und nicht gemessene:
- Gespeicherte kostenlose Netzwerke
- Vorgeschlagene kostenlose Netzwerke
- Gespeicherte kostenpflichtige Netzwerke
- Vorgeschlagene kostenpflichtige Netzwerke
Das bedeutet, dass ein gespeichertes Netzwerk mit unbegrenztem Datenvolumen (kostenlos) immer vor einem gespeicherten Netzwerk mit begrenzt verfügbarem Datenvolumen (kostenpflichtig) ausgewählt wird. Der zuletzt ausgewählte (vom Nutzer oder von der App) Punktebonus kann diese strenge Priorität überschreiben.
Im Framework können mehrere Kandidatenbewertungen installiert sein, aber jeweils nur eine kann aktiv sein. Die anderen Scorers können für Messwerte verwendet werden, um alternative Algorithmen zu untersuchen. In Android 11 ist der Standard-Scorer ThroughputScorer
.
SSID- und BSSID-Blockierung
Das Framework kann SSIDs oder BSSIDs blockieren, d. h., sie entweder vorübergehend oder dauerhaft nicht für Verbindungen berücksichtigen.
BSSID-Blockierung
Beim BSSID-Blockieren werden zwei Fehlerzähler geführt: ein Zähler für fortlaufende Fehler und ein Zähler für Fehlerfolgen. Beide Zähler werden für jeden spezifischen Fehlertyp geführt (siehe unten). Wenn ein Fehler auftritt:
- Der Zähler für den entsprechenden Fehlertyp wird erhöht.
- Wenn der Grenzwert für den Fehler für diesen Fehlertyp erreicht ist:
- Die BSSID ist blockiert.
- Der Streak-Zähler für den Fehler wird erhöht.
Die Dauer, für die eine BSSID blockiert wird, beginnt mit einem (konfigurierbaren) Basiswert (angegeben durch die Overlays config_wifiBssidBlocklistMonitorBaseBlockDurationMs
oder config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
, abhängig vom RSSI) und steigt exponentiell bis zu einer konfigurierbaren Obergrenze (angegeben durch das Overlay config_wifiBssidBlocklistMonitorFailureStreakCap
). Die Dauer verlängert sich, wenn auf derselben BSSID fortlaufend Fehler auftreten. Die Dauer ist die Basisdauer, die exponentiell mit der Anzahl der aufeinanderfolgenden Fehler steigt. Bei zwei aufeinanderfolgenden Fehlern ist die Blockierungsdauer also viermal so lang wie die Basisdauer.
Die Grenzwerte für das Blockieren von BSSIDs hängen vom Fehlergrund ab und können jeweils mit Overlays angepasst werden:
- Der AP lehnt die Zuordnung mit dem MBO/OCE-Code Unable to handle new STA ab:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
. - Die Internetüberprüfung über dieses Netzwerk ist fehlgeschlagen:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
. - Falsches Passwort. Fehlercode für Authentifizierungsfehler:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold
. - EAP-Fehlerauthentifizierungsfehlercode für EAP-Netzwerke:
config_wifiBssidBlocklistMonitorEapFailureThreshold
. - Ablehnung der Verknüpfung, andere allgemeine Ablehnungen der Verknüpfung:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold
. - Zeitlimit für die Verknüpfung:
config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold
. - Authentifizierungsfehler, andere allgemeine Authentifizierungsfehler:
config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold
. - DHCP-Fehler, DHCP konnte nicht bereitgestellt werden:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold
. - Die Verbindung wurde auf ungewöhnliche Weise getrennt. Das Gerät hat die Verbindung zum Netzwerk innerhalb sehr kurzer Zeit nach dem Herstellen der Verbindung getrennt:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold
. Der Zeitraum kann mitconfig_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs
konfiguriert werden.
Bedingungen für das Löschen von BSSID-Sperrlisten
Eine BSSID wird aus der Sperrliste entfernt, wenn:
- WLAN wird aktiviert: Alle BSSIDs werden aus der Sperrliste entfernt.
- Der Nutzer tippt in der WLAN-Auswahl auf ein Netzwerk: Alle BSSIDs des vom Nutzer ausgewählten Netzwerks werden aus der Blockierliste entfernt.
- Zeitüberschreitung: BSSIDs werden aus der Sperrliste entfernt, wenn die Blockierungsdauer erreicht ist.
- Neustart: Alle Blockierlisten werden gelöscht.
- Netzwerk entfernt: Alle mit diesem Netzwerk verknüpften BSSIDs werden aus der Blockierliste entfernt.
Bedingungen für das Zurücksetzen von Zählern für Fehler und Serien:
- Neustart: Für alle BSSIDs zurücksetzen.
- Netzwerk entfernt: Zurücksetzen für BSSIDs, die mit dem Netzwerk verknüpft sind.
Erfolgreiche L2-Verbindung: Zurücksetzen für die folgenden Fehlercodes.
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
(wird nur bedingt gelöscht, wenn die letzte Verbindung des Geräts mit dieser BSSID vor mehr als 3 Stunden erfolgte)REASON_NONLOCAL_DISCONNECT_CONNECTING
Netzwerkvalidierung erfolgreich: Zurücksetzen für den folgenden Fehlercode.
REASON_NETWORK_VALIDATION_FAILURE
DHCP-Bereitstellung erfolgreich: Zurücksetzen für den folgenden Fehlercode.
REASON_DHCP_FAILURE
SSID-Blockierung
Das Blockieren von SSIDs funktioniert ähnlich wie das Blockieren von BSSIDs. Für jeden Fehlertyp und jedes Netzwerk wird ein Fehlerzähler erhöht, wenn Verbindungsfehler dieses Typs auftreten.
Wenn die Anzahl der Fehler eines bestimmten Typs einen Schwellenwert überschreitet, wird die SSID basierend auf einer Konfiguration dauerhaft oder vorübergehend blockiert. Die Konfiguration für die einzelnen Fehlertypen ist in WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS
codiert und wird unten zusammengefasst.
* Bei vorübergehend deaktivierten Netzwerken ändert sich die Deaktivierungsdauer dynamisch basierend auf der Anzahl der aufeinanderfolgenden Verbindungsfehler im Netzwerk. Wenn ein Netzwerk fünfmal hintereinander keine Verbindung herstellen kann, führt jeder nachfolgende Fehler zu einer Deaktivierungsdauer, die doppelt so lang ist wie die vorherige. Beispiel: Ein Netzwerk mit fünf aufeinanderfolgenden Fehlern wird für 5 Minuten deaktiviert, dann für 10 Minuten beim sechsten Fehler, für 20 Minuten beim siebten Fehler usw. bis zum Höchstlimit von 18 Stunden. |
||||
Fehlercode | Beschreibung | Grenzwert | Dauer der Deaktivierung des Basis-Abos* | Typ deaktivieren |
---|---|---|---|---|
DISABLED_DHCP_FAILURE |
Fehler beim Bereitstellen von DHCP | 5 | 5 Minuten | Temporär |
DISABLED_NO_INTERNET_TEMPORARY |
Die Netzwerkvalidierung ist fehlgeschlagen, der Nutzer möchte aber auch in Zukunft eine Verbindung zu diesem Netzwerk herstellen. | 1 | 10 Minuten | Temporär |
DISABLED_AUTHENTICATION_NO_CREDENTIALS |
Der Supplicant hat keine Anmeldedaten für die Verbindung zum Netzwerk | 1 | NA | Permanent |
DISABLED_NO_INTERNET_PERMANENT |
Standard bei fehlgeschlagener Netzwerkvalidierung | 1 | NA | Permanent |
DISABLED_BY_WIFI_MANAGER |
Eingestellt und nicht verwendet | 1 | NA | Permanent |
DISABLED_BY_WRONG_PASSWORD |
Das Passwort ist falsch und es wurde noch nie eine Verbindung zu diesem Netzwerk hergestellt. | 1 | NA | Permanent |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
EAP-Fehler, wenn die SIM-Karte nicht abonniert ist | 1 | NA | Permanent |
DISABLED_ASSOCIATION_REJECTION |
Fehler beim Ablehnen von Verknüpfungen | 5 | 5 Minuten | Temporär |
DISABLED_AUTHENTICATION_FAILURE |
Andere Authentifizierungsfehler (d. h. kein falsches Passwort oder EAP-Fehler) | 5 | 5 Minuten | Temporär |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR |
Anbieterspezifischer (privater) EAP-Fehler. | 1 | NA | Permanent |
DISABLED_NETWORK_NOT_FOUND |
Der Supplicant konnte in den Scanergebnissen kein Netzwerk finden, das dem vom Framework angeforderten Netzwerk für die Verbindung entspricht (einschließlich der Netzwerkfunktionen). | 2 | 5 Minuten | Temporär |
DISABLED_CONSECUTIVE_FAILURES |
Die Verbindung zum Netzwerk konnte fünfmal oder öfter hintereinander nicht hergestellt werden. Der Fehlertyp für diese Fehler umfasst unter anderem die in dieser Tabelle aufgeführten Fehlertypen. |
5 | 5 Minuten | Temporär |
Ein vorübergehend deaktiviertes Netzwerk wird wieder aktiviert, wenn:
- Der Deaktivierungszeitraum ist abgelaufen.
- Der Nutzer wählt das Netzwerk, mit dem er sich verbinden möchte, manuell aus.
- Der Nutzer aktiviert oder deaktiviert WLAN.
- Das System wird neu gestartet.
- Das Netzwerk wurde bei einem sehr niedrigen RSSI deaktiviert, wird aber später wieder bei einem mittleren oder höheren RSSI erkannt.
Ein dauerhaft deaktiviertes Netzwerk wird reaktiviert, wenn:
- Der Nutzer wählt das Netzwerk, mit dem er sich verbinden möchte, manuell aus.
Fehlerzähler für ein Netzwerk werden zurückgesetzt, wenn:
- Das Netzwerk wird entfernt.
- Das Gerät wurde mit dem Netzwerk verbunden.
- Das Netzwerk wurde nach Ablauf des Deaktivierungszeitraums wieder aktiviert.
- Der Nutzer wählt das Netzwerk, mit dem er sich verbinden möchte, manuell aus.
- Das System wird neu gestartet.
Kurzübersichten
Mit den in Android 10 eingeführten Scorecards werden Statistiken zu BSSIDs auf dem Gerät aufgezeichnet. Die Scorecards werden mit dem Dienst IpMemoryStore
gespeichert.
Scorecards werden in Android 11 nicht für die Netzwerkauswahl verwendet.
Option für Nutzerverbindung
Android verwendet einen Algorithmus zur Auswahl von Verbindungen, mit dem WLANs bevorzugt werden, mit denen ein Nutzer bereits explizit verbunden war, z. B. ein Heimnetzwerk. Nutzer bevorzugen solche Netzwerke möglicherweise gegenüber öffentlichen Netzwerken, auch wenn die Leistung geringer ist als bei einem öffentlichen Netzwerk, da sie zusätzliche Dienste wie die Möglichkeit zur Steuerung von Smart-Home-Geräten bieten.
Die bevorzugte Netzwerkeinstellung des Nutzers wird erfasst, indem alle sichtbaren WLAN-Konfigurationen und ihre Signalstärken zu dem Zeitpunkt markiert werden, zu dem der Nutzer ein Netzwerk auswählt. Wenn während der automatischen Auswahl eine der markierten WLAN-Konfigurationen ausgewählt wird und ein vom Nutzer ausgewähltes Netzwerk verfügbar ist, überschreibt der Algorithmus zur Auswahl der Nutzerverbindung die Auswahl mit dem vom Nutzer ausgewählten Netzwerk, wenn die folgenden Bedingungen erfüllt sind:
- Das Netzwerk, das der Nutzer für die Verbindung ausgewählt hat, hatte beim letzten Mal Internetzugang.
- Die Signalstärke der vom Nutzer ausgewählten Verbindung ist nicht schlechter als bei der ursprünglichen Auswahl, wobei eine Fehlermarge berücksichtigt wird. Diese Fehlermarge kann mit dem Overlay
config_wifiEstimateRssiErrorMarginDb
konfiguriert werden.
Die Auswahl des Netzwerks für die Verbindung durch den Nutzer bleibt nach einem Neustart bestehen. Die Option „Verbinden“ funktioniert für gespeicherte Netzwerke, Passpoint-Netzwerke und vorgeschlagene Netzwerke.
Zwei gleichzeitige Sender
In diesem Abschnitt wird die Auswahl des WLANs beschrieben, wenn ein Gerät die gleichzeitige Verbindung mit zwei WLANs unterstützt.
Make-before-break
Wenn die Make-before-Break-Funktion aktiviert ist, versucht das Gerät, sich mit dem neuen Netzwerk zu verbinden, bevor es die Verbindung zum alten Netzwerk trennt. Beim Make-before-Break-Ablauf wird derselbe Algorithmus zur Netzwerkauswahl verwendet wie beim Break-before-Make-Netzwerkwechsel (bei dem das Gerät die Verbindung zum alten Netzwerk trennt, bevor es sich mit dem neuen Netzwerk verbindet). Wenn der Netzwerkauswahlalgorithmus ein Netzwerk auswählt, das nicht mit „Make-before-break“ umgeschaltet werden kann, wechselt das Gerät automatisch zu „Break-before-make“.
Gleichzeitige eingeschränkte und Internetverbindung
Wenn die Funktion Gleichzeitige eingeschränkte und Internetverbindung aktiviert ist, kann das Gerät eine Verbindung zu einem sekundären eingeschränkten WLAN herstellen, das nur für ausgewählte Apps verfügbar ist, die vom Gerätehersteller konfiguriert wurden. Eine Anleitung für Gerätehersteller zum Konfigurieren dieser Funktion finden Sie unter Gleichzeitige eingeschränkte und Internetverbindung.
Wenn der Algorithmus zur Netzwerkauswahl Scanergebnisse erkennt, die mit dem vom OEM bezahlten oder privaten Vorschlag übereinstimmen, wird automatisch eine Verbindung als zweites Netzwerk hergestellt. Die Auswahl des primären WLANs (über das reguläre Apps eine Internetverbindung herstellen) erfolgt normalerweise parallel.
Häufig gestellte Fragen (FAQs)
Haben sichere Netzwerke immer Priorität gegenüber offenen Netzwerken?
Nein. „Gespeichert“ im Vergleich zu „Vorgeschlagen“ und „Kostenpflichtig“ im Vergleich zu „Kostenlos“ sind die primären Kategorien, in denen Netzwerke bewertet werden. Innerhalb jeder Kategorie haben sichere Netzwerke eine gewisse Priorität gegenüber offenen Netzwerken, aber die Qualität der Verbindung hat ein viel höheres Gewicht.
Der Grund dafür ist, dass die tatsächliche Sicherheit der Nutzerdaten durch End-to-End-Verschlüsselung (z. B. TLS) gewährleistet wird. Sichere Netzwerke verschlüsseln nur den ersten Teil der Kommunikation und bieten selbst dann, wenn sie mit Pre-Shared Keys arbeiten, nicht viel Privatsphäre.
Warum werden gespeicherte Netzwerke gegenüber vorgeschlagenen Netzwerken priorisiert?
Gespeicherte kostenlose Netzwerke haben eine höhere Priorität als vorgeschlagene kostenlose Netzwerke und gespeicherte kostenpflichtige Netzwerke haben eine höhere Priorität als vorgeschlagene kostenpflichtige Netzwerke.
Gespeicherte Netzwerke haben Priorität vor vorgeschlagenen Netzwerken, da sie vom Nutzer explizit dem Gerät hinzugefügt wurden. Das bedeutet, dass diese Netzwerke nach Möglichkeit bevorzugt werden.
Nutzer können das Verhalten der automatischen Verbindung für einzelne gespeicherte Netzwerke deaktivieren. Das bedeutet, dass diese Netzwerke nur manuell verwendet werden und nicht automatisch vom Gerät berücksichtigt werden.
Kann ich die strikte Prioritätsreihenfolge ändern oder ganz entfernen?
Der Gerätehersteller kann die Entscheidungen zur Netzwerkauswahl ändern, indem er die in den obigen Abschnitten aufgeführten Bonus-Overlays ändert. Es wird jedoch nicht empfohlen, die Standardwerte zu ändern, da sie nach sorgfältiger Prüfung verschiedener Anwendungsfälle ausgewählt wurden.