Diese Seite beschreibt die Algorithmen und Verfahren, die in Android 12 zum Auswählen und Wechseln zwischen Wi-Fi-Netzwerken verwendet werden. Android bewertet kontinuierlich die Qualität des verbundenen Netzwerks und bewertet die Qualität verfügbarer Netzwerke.
Lebensdauer einer automatischen Verbindung
Dies beschreibt den Prozess, wie ein Android-Gerät verfügbare Wi-Fi-Netzwerke 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.
- Bildschirm an (verbunden): Das Android-Konnektivitätssubsystem wertet regelmäßig aus, ob die aktuelle Verbindung gut genug ist, um das Scannen zu überspringen (wie in Bildschirm-an-Scans definiert). Wenn die Verbindung nicht gut genug ist, um den Scan zu überspringen, löst das Konnektivitätssubsystem 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 App „Einstellungen“) ausgelöst werden.
- Bildschirm an (getrennt): Das Android-Konnektivitätssubsystem führt regelmäßige Scans nach einem exponentiellen Backoff-Zeitplan aus. Das Modul wertet alle empfangenen Scan-Ergebnisse aus und versucht, das beste Netzwerk für die Verbindung auszuwählen.
- Bildschirm aus (getrennt): Die Host-CPU programmiert die Firmware mit einer Liste bevorzugter Netzwerke unter Verwendung bevorzugter Netzwerk-Offload-Scans (PNO), sobald der Bildschirm ausgeschaltet wird. Die Firmware weckt den Host, wenn sie eines der bevorzugten Netzwerke findet. AOSP geht davon aus, dass PNO auf dem Gerät unterstützt wird.
Die
WifiManager#allowAutojoinGlobal(boolean)
kann verwendet werden, um automatische Verbindungen zu deaktivieren. Dies ist eine privilegierte API, die von Geräteherstellern unter bestimmten Umständen verwendet werden kann (z. B. ein nicht mobiles, vorkonfiguriertes Gerät).Wenn das Gerät verbunden ist und das Overlay
config_wifi_framework_enable_associated_network_selection
auffalse
gesetzt ist, werden keine Konnektivitätsscans durchgeführt und die Scanergebnisse lösen keine Netzwerkauswahl aus. Diese Einstellung hat keine Auswirkung, wenn das Gerät getrennt wird, was bedeutet, dass Konnektivitätsscans und Netzwerkauswahl weiterhin stattfinden.Scanergebnisse werden ausgewertet.
Wenn das Gerät mit einem Wi-Fi-Netzwerk verbunden ist, bewertet das Framework, ob das aktuelle Netzwerk gut genug ist, um die Netzwerkauswahl zu überspringen .
Ein Netzwerk wird als gut genug definiert, um die Netzwerkauswahl zu überspringen, wenn eine der folgenden Anforderungen erfüllt ist:
- Seit der letzten Netzwerkauswahl sind weniger als 10 Sekunden vergangen.
- Der Benutzer, der sich kürzlich manuell mit dem Netzwerk verbunden hat (wobei kürzlich mithilfe des Overlays
config_wifiSufficientDurationAfterUserSelectionMilliseconds
konfigurierbar ist). - Das Gerät ist mit einer Online-Anmeldeverbindung (OSU) verbunden.
Alle folgenden Anforderungen sind erfüllt:
- Der RSSI liegt über dem erforderlichen RSSI-Schwellenwert oder es fließt ausreichend Datenverkehr über die Verbindung (siehe Screen-on-Scans für RSSI- und Datenverkehrsschwellenwerte).
- Das Netzwerk ist validiert (mit dem Internet verbunden) oder vom Benutzer für die Verwendung ohne Internetzugang zugelassen.
- 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 Wi-Fi-Netzwerk nicht gut genug ist oder das Gerät nicht mit einem Netzwerk verbunden ist, ruft das Framework die Netzwerk-Nominatoren auf, um basierend auf gefilterten Scanergebnissen eine Liste von Kandidaten-Wi-Fi-Netzwerken zu erstellen, mit denen eine Verbindung hergestellt werden kann. Die Netzwerknominatoren finden vorhandene Wi-Fi-Konfigurationen oder erstellen neue Konfigurationen für die Kandidatennetzwerke.
Die Scan-Ergebnisse werden gefiltert , um BSSIDs zu entfernen, die einen RSSI unter dem Eintrag RSSI haben (konfigurierbar mit den
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
undconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
). Zusätzlich werden blockierte BSSIDs gefiltert. BSSIDs können basierend auf wiederholten Verbindungsfehlern, häufigen Verbindungsabbrüchen und expliziten Anforderungen vom AP, für einen bestimmten Zeitraum keine Verbindung zu versuchen, blockiert werden (MBO-OCE). Die BSSID-Blockierung wird unten unter SSID- und BSSID-Blockierung beschrieben.Wenn sich das Gerät schnell bewegt, werden die Scan-Ergebnisse optional weiter gefiltert, um BSSIDs zu entfernen, deren RSSI schnell variiert (ein Hinweis darauf, dass sie sich nicht mit dem Gerät bewegen). Diese Optimierung kann mit
config_wifiHighMovementNetworkSelectionOptimizationEnabled
(Aktivieren/Deaktivieren der Optimierung) und den Overlaysconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMs
undconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta
konfiguriert werden, die die Stabilitätsanforderung für Scanergebnisse konfigurieren (RSSI-Umstellung der Scanergebnisse zeitlich ausreichend getrennt).
Das Framework führt den Kandidaten-Scorer aus, um eine Punktzahl für jeden Service Set Identifier (SSID)-Kandidaten zu generieren. Die SSID-Kandidaten können mehrere Basic Service Set Identifier (BSSID)-Kandidaten (erzeugt durch die Netzwerk-Nominatoren) umfassen. Der Kandidat mit der höchsten Punktzahl ist der Siegerkandidat .
Das Framework führt den Algorithmus zur Wahl der Benutzerverbindung aus, der ein vom Benutzer ausgewähltes Netzwerk zum neuen Gewinnerkandidaten machen könnte, anstatt den Gewinnerkandidaten aus dem Kandidaten-Scorer zu verwenden.
Das Framework bestimmt, ob der Gewinnerkandidat zum aktuell verbundenen Netzwerk passt. Um als Übereinstimmung zu gelten, muss eine der folgenden Bedingungen erfüllt sein:
- Der siegreiche Kandidat und das verbundene Wi-Fi-Netzwerk haben dieselbe BSSID.
- Wenn Firmware-Roaming verfügbar ist (einschließlich BSSID-Blacklist-Funktion), haben der Gewinnerkandidat und das verbundene Netzwerk dieselbe SSID und denselben Sicherheitstyp.
Wenn der Gewinnerkandidat mit dem aktuell verbundenen Netzwerk übereinstimmt, wird keine weitere Aktion durchgeführt. Wenn der siegreiche Kandidat nicht mit dem Netzwerk übereinstimmt, wird das Gerät dem siegreichen Kandidaten zugeordnet.
Beachten Sie, dass die automatische Netzwerkverbindung deaktiviert ist, während eine App die Wi-Fi Network Request API verwendet, die das System außer Kraft setzt und ein LAN ohne Internet erstellt, außer auf Geräten, die zwei gleichzeitige Stationen unterstützen.
Auswertung eines angeschlossenen Netzwerks
Das Android-Framework oder die Firmware bewertet regelmäßig die Qualität des verbundenen Netzwerks. Dieser Abschnitt beschreibt, wie das verbundene Netzwerk ausgewertet wird, wenn der Bildschirm ein- oder ausgeschaltet ist.
Diese Bewertung erfolgt zusätzlich zu der oben diskutierten Netzwerkauswahl .
Bildschirm An
Das Android-Framework wertet das verbundene Netzwerk folgendermaßen aus:
- Der Wi-Fi-Dienst fragt RSSI und Link-Layer-Statistiken alle 3 Sekunden ab (konfigurierbar mit dem Overlay
config_wifiPollRssiIntervalMilliseconds
). - Der Wi-Fi-Dienst berechnet basierend auf den RSSI- und Link-Layer-Statistiken einen verbundenen Score.
- Der Wi-Fi-Dienst übergibt die Punktzahl an den Konnektivitätsdienst, der anhand der Punktzahl bestimmt, ob eine Verbindung zu einem Wi-Fi-Netzwerk oder zu einem anderen verfügbaren Netzwerktyp, z. B. einem Mobilfunknetz, hergestellt werden soll.
Abblenden
Das Framework initiiert keine Bewertung im verbundenen Netzwerk, aber der Netzwerkauswahlprozess kann dennoch stattfinden, wenn Scans von anderen Komponenten (z. B. Ortungsdiensten) initiiert werden. Die Firmware wertet die Netzwerkqualität aus, und wenn die Netzwerkqualität schlecht ist, kann die Firmware roamen oder sich (eventuell) vom Netzwerk trennen und den Host aufwecken.
Konnektivitätsscans
Scans werden automatisch durchgeführt, je nachdem, ob das Gerät den Bildschirm eingeschaltet hat, den Bildschirm ausgeschaltet hat und mit Wi-Fi verbunden ist oder ob der Bildschirm ausgeschaltet und nicht mit Wi-Fi verbunden ist.
Bildschirm An
Das Framework löst Scan-Entscheidungen in zunehmenden Abständen aus, wenn der Bildschirm eingeschaltet wird. Die Scan-Entscheidungsintervalle werden mit den config_wifiDisconnectedScanIntervalScheduleSec
, config_wifiConnectedScanIntervalScheduleSec
und config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec
(die Arrays von Ganzzahlen sind). Standardmäßig erfolgen Scans mit exponentiellen Backoff-Intervallen von 20, 40, 80 und 160 Sekunden, wobei nachfolgende Scans möglicherweise in 160-Sekunden-Intervallen durchgeführt werden (dies sind die Standardwerte der obigen Overlays).
Die exponentiellen Backoff-Scan-Intervalle werden zurückgesetzt und bei 20 Sekunden neu gestartet, wenn sich der Bildschirmstatus ändert, d. h. wenn der Bildschirm ein- oder ausgeschaltet wird.
(Android 13+) Wenn zur Laufzeit andere Scan-Intervalle benötigt werden, kann eine OEM-privilegierte App die WifiManager#setScreenOnScanSchedule(screenOnScanSchedule)
, um den Screen-On-Scan-Zeitplan dynamisch festzulegen.
Die Entscheidung, ob ein Scan ausgeführt oder übersprungen wird, hängt davon ab, ob die aktuelle Netzwerkverbindung gut genug ist, um den Scan 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 Online-Anmeldeverbindung (OSU) verbunden.
- Es fließt ausreichend Datenverkehr durch die Verbindung (siehe Datenverkehrsschwellenwerte unten).
- Der RSSI liegt über dem erforderlichen RSSI-Schwellenwert (siehe RSSI-Schwellenwerte unten), und die Netzwerkauswahl wurde kürzlich durchgeführt (standardmäßig 10 Minuten, kann aber mit dem Overlay
config_wifiConnectedHighRssiScanMinimumWindowSizeSec
konfiguriert werden), und entweder das Netzwerk ist validiert (mit dem Internet verbunden) oder der Benutzer -zugelassen für die Verwendung ohne Internetzugang.
Die RSSI- und Traffic-Schwellenwerte sind:
- RSSI liegt über -73 dBm für das 2,4-GHz-Band, konfiguriert mit dem Overlay
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
, oder -70 dBm für die 5-GHz- und 6-GHz-Bänder, konfiguriert mit den Overlaysconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHz
undconfig_wifiFrameworkScoreLowRssiThreshold6ghz
. - Der Datenverkehr (Senden oder Empfangen) beträgt über 16 Pakete pro Sekunde (pps), die mit dem Overlay
config_wifiFrameworkMinPacketPerSecondActiveTraffic
konfiguriert sind.
Wenn das Gerät angeschlossen und der Bildschirm eingeschaltet ist. Ein verbundener Scorer überwacht regelmäßig die Wi-Fi-Qualität, indem er Signale wie RSSI und die Anzahl der übertragenen Pakete betrachtet. Wenn festgestellt wird, dass die Wi-Fi-Qualität schlecht ist (wie unten angegeben) und das Gerät zwei gleichzeitige Stationen unterstützt, wird ein Scan ausgelöst. Das config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
Overlay kann verwendet werden, um den Score-Schwellenwert zu konfigurieren, der das Scannen auslöst. Das Overlay config_wifiLowConnectedScoreScanPeriodSeconds
kann verwendet werden, um den Zeitraum dieser Scans zu konfigurieren.
Bildschirm aus und mit WLAN verbunden
Wenn der Bildschirm ausgeschaltet und das Gerät mit einem Wi-Fi-Netzwerk verbunden ist, führt die Firmware (Wi-Fi SoC) Roaming-Scans durch. Das Framework führt keine Scans durch, wenn der Bildschirm ausgeschaltet ist.
Bildschirm ausgeschaltet und nicht mit WLAN verbunden (getrennter Zustand)
Wenn der Bildschirm ausgeschaltet und die Wi-Fi-Verbindung getrennt ist, führt die Firmware PNO -Scans für SSIDs durch. Das Framework konfiguriert die Firmware mit einer Liste von zu scannenden SSIDs und einer Liste von zu scannenden Kanälen. Wenn eine konfigurierte SSID gefunden wird, weckt die Firmware das Framework auf.
Das Framework konfiguriert auch das Intervall, in dem die Firmware PNO-Scans durchführen soll, indem es den Gerätemobilitätsstatus verwendet, um verschiedene Scanintervalle auszuwählen. In einem Zustand mit geringer Mobilität (das Gerät ist stationär) beträgt das Intervall 60 Sekunden für die ersten drei Scans (gesteuert durch das Overlay config_wifiStationaryPnoScanIntervalMillis
) und 180 Sekunden (ein fester 3-facher Multiplikator des Overlays) für nachfolgende Scans. In einem Zustand mit hoher Mobilität beträgt das Intervall 20 Sekunden für die ersten drei Scans (gesteuert durch das Overlay config_wifiMovingPnoScanIntervalMillis
) und 60 Sekunden (ein fester 3-facher Multiplikator des Overlays) Sekunden für nachfolgende Scans.
Nominatoren des Netzwerks
Die Netzwerk-Nominatoren finden oder erstellen Konfigurationen ( WifiConfiguration
) für Netzwerke, die:
- Derzeit verfügbar (basierend auf Scanergebnissen) oder das aktuell verbundene Netzwerk (das manchmal in unzuverlässigen Scanergebnissen fehlt).
- Haben Sie einen minimalen RSSI. Der minimale RSSI beträgt -80 dBm für das 2,4-GHz-Band und -77 dBm für die 5-GHz- und 6-GHz-Bänder, konfigurierbar mit den
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
undconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
. - Nicht blockiert, z. B. aufgrund früherer Verbindungsausfälle.
- Das Netzwerk zeigt nicht an, dass es unbrauchbar ist (z. B. bei Verwendung von MBO/OCE).
- Kann der Verwendung der auf dem Gerät verfügbaren Anmeldeinformationen zugeordnet werden.
Die folgenden Netzwerknominatoren werden verwendet:
- Nominator für gespeicherte Netzwerke: Wertet alle gespeicherten Netzwerke aus (einschließlich gespeicherter Passpoint-Abonnements).
- Nominator für vorgeschlagenes Netzwerk: Bewertet alle Netzwerke, die von Apps bereitgestellt werden, die die Vorschlags-API verwenden (einschließlich vorgeschlagener Passpoint-Abonnements).
- Extern bewerteter Netzwerk-Nominator: OEM-Mechanismus zum Bereitstellen von Netzwerkkonnektivitätsoptionen für das Gerät. Weitere Informationen finden Sie unter Externer Netzwerkbewertungsanbieter .
Torschützenkandidaten
Kandidaten-Scorer bewerten jeden Kandidaten und geben ihm eine Punktzahl. Die Punktzahl für ThroughputScorer
(Standard-Scorer) basiert auf Folgendem:
- Ein Basis-Score wird basierend auf RSSI berechnet, wobei RSSI auf -73 dBm für das 2,4-GHz-Band oder -70 dBm für die 5-GHz- und 6-GHz-Bänder begrenzt ist (konfiguriert mit
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_low_rssi_threshold_5GHz
undconfig_wifiFrameworkScoreLowRssiThreshold6ghz
). - Ein Score-Boost wird basierend auf einer Durchsatzschätzung berechnet, die aus Technologie, Kanalfrequenz, Bandbreite, RSSI, Kanalbedingungen, der maximalen Anzahl von räumlichen Streams und anderen Parametern abgeleitet wird. Der Score-Boost kann mit den Overlays
config_wifiFrameworkThroughputBonusNumerator
undconfig_wifiFrameworkThroughputBonusDenominator
konfiguriert werden und ist auf einen maximalen Wert begrenzt, der mit dem Overlayconfig_wifiFrameworkThroughputBonusLimit
angegeben wird. - Ein Kandidatennetzwerk, das kürzlich vom Benutzer oder von einer App ausgewählt wurde, erhält für eine Dauer, die mithilfe des
config_wifiFrameworkLastSelectionMinutes
Overlays konfigurierbar ist, einen großen Score-Boost (für diese Dauer wird das Netzwerk garantiert vor nicht vom Benutzer ausgewählten Netzwerken ausgewählt). - Ein Kandidat, der mit dem aktuellen Netzwerk übereinstimmt, erhält einen Score-Boost, der durch die Überlagerungen
config_wifiFrameworkCurrentNetworkBonusMin
undconfig_wifiFrameworkCurrentNetworkBonusPercent
konfiguriert wird (er erhält einen zusätzlichen Bonus basierend auf einem Prozentsatz seines RSSI- und durchsatzbasierten Scores bis hinunter zum konfigurierbaren Minimum). - Ein sicheres Netzwerk wird höher bewertet als ein offenes Netzwerk. Der Bonus wird mit dem Overlay
config_wifiFrameworkSecureNetworkBonus
konfiguriert. - Ein nicht gemessenes (kostenloses) Netzwerk wird höher bewertet als ein gemessenes (kostenpflichtiges) Netzwerk. Der Bonus wird mit dem Overlay
config_wifiFrameworkUnmeteredNetworkBonus
konfiguriert. - Ein gespeichertes Netzwerk wird höher bewertet als ein Netzwerk, das über die Vorschlags-API vorgeschlagen wird. Der Bonus wird mit dem Overlay
config_wifiFrameworkSavedNetworkBonus
konfiguriert. - Nicht vertrauenswürdige Netzwerke (die als Teil der Vorschlags-API angefordert werden können) werden niedriger bewertet als alle anderen Netzwerke.
- Ein zuvor als nicht internetfähig erkanntes Netzwerk erhält die Punktzahl 0, wenn das Gerät aktuell mit einem anderen Netzwerk mit Internetzugang verbunden ist.
Der Standardbonus für „Gespeichert“ im Vergleich zu „Vorschlag“ und „Ungemessen“ im Vergleich zu „Zählbar“ (d. h. die standardmäßigen Overlay-Werte) erzeugen eine strenge Prioritätsreihenfolge für „Gespeichert“, „Vorgeschlagen“, „Zählbar“ und „Nicht gemessen“:
- Nicht gemessene Netzwerke gespeichert
- Vorgeschlagene nicht getaktete Netzwerke
- Gespeicherte getaktete Netzwerke
- Vorgeschlagene getaktete Netzwerke
Das bedeutet, dass ein gespeichertes ungetaktetes (kostenloses) Netz immer vor einem gespeicherten getakteten (kostenpflichtigen) Netz ausgewählt wird. Der kürzlich ausgewählte Punktebonus (durch Benutzer oder App) kann diese strenge Priorität außer Kraft setzen.
Das Framework kann mehrere Kandidaten-Scorer installiert haben, aber es kann immer nur einer aktiv sein. Die anderen Scorer können für Metriken verwendet werden (um alternative Algorithmen zu untersuchen). In Android 11 ist der Standard-Scorer ThroughputScorer
.
SSID- und BSSID-Blockierung
Das Framework kann SSIDs und/oder BSSIDs blockieren, dh sie für Verbindungen weder vorübergehend noch dauerhaft berücksichtigen.
BSSID-Blockierung
Die BSSID-Blockierung funktioniert, indem zwei Fehlerzähler, ein kontinuierlicher Fehlerzähler und ein Streak-Zähler, pro spezifischem Fehlertyp geführt werden (siehe unten für eine Liste der Fehlertypen). Wenn ein Fehler auftritt:
- Der Zähler für den entsprechenden Fehlertyp wird inkrementiert.
- Wenn der Fehlerschwellenwert für diesen Fehlertyp erreicht ist:
- Die BSSID ist gesperrt.
- Der Streak-Zähler für den Ausfall wird inkrementiert.
Die Dauer, für die eine BSSID blockiert ist, beginnt bei einem (konfigurierbaren) Basiswert (angegeben durch die Overlays config_wifiBssidBlocklistMonitorBaseBlockDurationMs
oder config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
, je nach RSSI) und steigt exponentiell bis zu einer konfigurierbaren Obergrenze (angegeben durch das Overlay config_wifiBssidBlocklistMonitorFailureStreakCap
). Die Dauer verlängert sich, wenn kontinuierlich Fehler auf derselben BSSID auftreten. Die Dauer ist die durch die Fehlerserie exponentiell erhöhte Basisdauer, d. h. eine Fehlerserie von 2 impliziert eine 4-fache Basisblockdauer.
Die Schwellenwerte für die BSSID-Blockierung hängen vom Fehlergrund ab und sind jeweils mithilfe von Overlays anpassbar:
- AP lehnt Zuordnung mit MBO/OCE ab Neuer STA -Code kann nicht verarbeitet werden:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
. - Die Internetvalidierung über dieses Netzwerk ist fehlgeschlagen:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
. - Authentifizierungsfehlercode für falsches Passwort:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold
. - EAP-Fehler Authentifizierungsfehlercode für EAP-Netzwerke:
config_wifiBssidBlocklistMonitorEapFailureThreshold
. - Zuordnungszurückweisung, andere allgemeine Zuordnungszurückweisungen:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold
. - Zuordnungszeitüberschreitung:
config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold
. - Authentifizierungsfehler, andere allgemeine Authentifizierungsfehler:
config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold
. - DHCP-Fehler, Fehler bei der Bereitstellung von DHCP:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold
. - Abnormale Trennung, das Gerät hat sich innerhalb sehr kurzer Zeit nach dem Verbinden vom Netzwerk getrennt:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold
. Das Zeitfenster ist mitconfig_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs
konfigurierbar.
Bedingungen zum Löschen der BSSID-Sperrliste
Eine BSSID wird aus der Sperrliste gelöscht, wenn:
- Wi-Fi ist umgeschaltet: Alle BSSIDs werden aus der Sperrliste entfernt.
- Der Benutzer tippt auf ein Netzwerk in der WLAN-Auswahl: Alle BSSIDs des vom Benutzer ausgewählten Netzwerks werden aus der Sperrliste entfernt.
- Timeout: BSSIDs werden aus der Sperrliste entfernt, wenn die Sperrdauer erreicht ist.
- Neustart: Alle Sperrlisten werden gelöscht.
- Netzwerk entfernt: Alle diesem Netzwerk zugeordneten BSSIDs werden aus der Sperrliste entfernt.
Bedingungen zum Zurücksetzen von Fehler- und Streifenzählern:
- Neustart: Reset für alle BSSIDs.
- Netzwerk entfernt: Zurücksetzen für BSSIDs, die dem Netzwerk zugeordnet 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
(bedingt nur gelöscht, wenn das letzte Mal, dass das Gerät mit dieser BSSID verbunden war, mehr als 3 Stunden zurückliegt) -
REASON_NONLOCAL_DISCONNECT_CONNECTING
-
Netzwerkvalidierung erfolgreich: Wird für den folgenden Fehlercode zurückgesetzt.
-
REASON_NETWORK_VALIDATION_FAILURE
-
Erfolgreiche DHCP-Bereitstellung: Wird bei folgendem Fehlercode zurückgesetzt.
-
REASON_DHCP_FAILURE
-
SSID-Blockierung
Die SSID-Blockierung funktioniert ähnlich wie die BSSID-Blockierung. Ein Fehlerzähler pro Fehlertyp pro Netzwerk wird inkrementiert, wenn Verbindungsfehler (dieses Typs) auftreten. Wenn die Fehleranzahl eines bestimmten Typs einen Schwellenwert überschreitet, wird die SSID basierend auf einer Konfiguration dauerhaft oder vorübergehend gesperrt. Die Konfiguration für jeden Fehlertyp ist in WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS
codiert und unten zusammengefasst.
* Bei vorübergehend deaktivierten Netzwerken ändert sich die Deaktivierungsdauer dynamisch basierend auf der Anzahl aufeinanderfolgender Verbindungsfehler im Netzwerk. Nachdem ein Netzwerk fünfmal hintereinander keine Verbindung herstellen konnte, führt jeder nachfolgende Fehler zu einer Deaktivierungsdauer, die doppelt so lang ist wie die vorherige Dauer. Beispielsweise wird ein Netzwerk mit fünf aufeinanderfolgenden Fehlern für 5 Minuten deaktiviert, dann für 10 Minuten beim sechsten Fehler, 20 Minuten für den siebten Fehler und so weiter bis zur Höchstgrenze von 18 Stunden. | ||||
Fehlercode | Beschreibung | Schwelle | Basis-Deaktivierungsdauer* | Typ deaktivieren |
---|---|---|---|---|
DISABLED_DHCP_FAILURE | Fehler beim Bereitstellen von DHCP | 5 | 5 Minuten | Vorübergehend |
DISABLED_NO_INTERNET_TEMPORARY | Die Netzwerkvalidierung ist fehlgeschlagen, aber der Benutzer gibt an, dass er in Zukunft weiterhin eine Verbindung zu diesem Netzwerk herstellen möchte | 1 | 10 Minuten | Vorübergehend |
DISABLED_AUTHENTICATION_NO_CREDENTIALS | Dem Antragsteller fehlen die Anmeldeinformationen, um eine Verbindung zum Netzwerk herzustellen | 1 | N / A | Dauerhaft |
DISABLED_NO_INTERNET_PERMANENT | Standard für Netzwerkvalidierungsfehler | 1 | N / A | Dauerhaft |
DISABLED_BY_WIFI_MANAGER | Veraltet und unbenutzt | 1 | N / A | Dauerhaft |
DISABLED_BY_WRONG_PASSWORD | Das Passwort ist falsch und dieses Netzwerk wurde noch nie erfolgreich verbunden | 1 | N / A | Dauerhaft |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION | EAP-Fehler, wenn die SIM-Karte nicht abonniert ist | 1 | N / A | Dauerhaft |
DISABLED_ASSOCIATION_REJECTION | Fehler bei der Zuordnungszurückweisung | 5 | 5 Minuten | Vorübergehend |
DISABLED_AUTHENTICATION_FAILURE | Andere Authentifizierungsfehler (d. h. kein falsches Passwort oder ein EAP-Fehler) | 5 | 5 Minuten | Vorübergehend |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR | Anbieterspezifischer (privater) EAP-Fehler. | 1 | N / A | Dauerhaft |
DISABLED_NETWORK_NOT_FOUND | Der Supplicant konnte in den Scan-Ergebnissen kein Netzwerk finden, das mit dem Netzwerk übereinstimmt, das vom Framework für die Verbindung angefordert wurde (einschließlich Netzwerkfunktionen). | 2 | 5 Minuten | Vorübergehend |
DISABLED_CONSECUTIVE_FAILURES | Das Netzwerk konnte mindestens fünfmal hintereinander keine Verbindung herstellen. Der Fehlertyp für diese Fehler umfasst unter anderem die in dieser Tabelle aufgeführten Fehlertypen. | 5 | 5 Minuten | Vorübergehend |
Ein vorübergehend deaktiviertes Netzwerk wird wieder aktiviert, wenn:
- Die Deaktivierungsdauer ist abgelaufen.
- Der Benutzer wählt das zu verbindende Netzwerk manuell aus.
- Der Benutzer schaltet Wi-Fi um.
- Das System wird neu gestartet.
- Das Netzwerk wurde bei einem sehr niedrigen RSSI deaktiviert, aber das Netzwerk wird später wieder bei einem mittleren oder höheren RSSI erkannt.
Ein dauerhaft deaktiviertes Netzwerk wird wieder aktiviert, wenn:
- Der Benutzer wählt das zu verbindende Netzwerk manuell aus.
Fehlerzähler für ein Netzwerk werden zurückgesetzt, wenn:
- Das Netzwerk wird entfernt.
- Das Gerät hat sich erfolgreich mit dem Netzwerk verbunden.
- Das Netzwerk wurde nach Ablauf der Deaktivierungsdauer wieder aktiviert.
- Der Benutzer wählt das zu verbindende Netzwerk manuell aus.
- Das System wird neu gestartet.
Wertungslisten
Scorecards, eingeführt in Android 10, zeichnen Gerätestatistiken zu BSSIDs auf. Scorecards werden mithilfe des IpMemoryStore
-Dienstes beibehalten.
Scorecards werden bei der Netzwerkauswahl in Android 11 nicht verwendet.
Wahl der Benutzerverbindung
Android verfügt über einen Algorithmus zur Auswahl der Benutzerverbindung, der es dem Auswahlprozess ermöglicht, Wi-Fi-Netzwerke zu bevorzugen, mit denen ein Benutzer explizit verbunden ist, beispielsweise mit einem Heimnetzwerk. Benutzer können solche Netzwerke öffentlichen Netzwerken vorziehen, selbst wenn die Leistung geringer ist als bei einem öffentlichen Netzwerk, da sie zusätzliche Dienste bereitstellen, wie z. B. die Möglichkeit, Heimgeräte zu steuern.
Die Präferenz des Benutzers für ein Netzwerk wird erfasst, indem alle sichtbaren Wi-Fi-Konfigurationen und ihre Signalstärken markiert werden, wenn der Benutzer ein Netzwerk auswählt. Wenn während des automatischen Auswahlprozesses eine der markierten Wi-Fi-Konfigurationen ausgewählt wird und ein vom Benutzer ausgewähltes Netzwerk verfügbar ist, überschreibt der Algorithmus für die Verbindungsauswahl des Benutzers die Auswahl mit dem vom Benutzer ausgewählten Netzwerk, wenn die folgenden Bedingungen erfüllt sind:
- Das User-Connect-Choice-Netzwerk hatte bei der letzten Nutzung Internetzugang
- Die Verbindungsauswahl des Benutzers hat eine Signalstärke, die nicht schlechter ist als bei der ursprünglichen Auswahl mit einer Fehlerspanne. Diese Fehlerspanne kann mit dem Overlay
config_wifiEstimateRssiErrorMarginDb
konfiguriert werden.
Das Benutzerverbindungsauswahlnetzwerk bleibt nach einem Neustart bestehen. Die Auswahl der Benutzerverbindung funktioniert für gespeicherte Netzwerke, Passpoint-Netzwerke und Vorschlagsnetzwerke.
Zwei gleichzeitige Stationen
Dieser Abschnitt beschreibt die Wi-Fi-Netzwerkauswahl, wenn ein Gerät die gleichzeitige Verbindung mit zwei Wi-Fi-Netzwerken 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 sich vom alten Netzwerk trennt. Der Make-before-Break-Flow verwendet denselben Netzwerkauswahlalgorithmus wie Break-before-Make-Netzwerkwechsel (bei dem das Gerät die Verbindung zum alten Netzwerk trennt, bevor es sich mit dem neuen verbindet). Wählt der Netzauswahlalgorithmus ein Netz aus, das nicht per Make-before-break geschaltet werden kann, fällt das Gerät automatisch auf Break-before-break zurück.
Gleichzeitige eingeschränkte und Internetverbindung
Wenn die gleichzeitige eingeschränkte und Internetverbindungsfunktion aktiviert ist, kann das Gerät eine Verbindung zu einem sekundären eingeschränkten Wi-Fi-Netzwerk herstellen, das nur für ausgewählte Apps verfügbar ist, die vom Gerätehersteller konfiguriert wurden. Anweisungen für Gerätehersteller, dies zu konfigurieren, finden Sie unter Concurrent limited and internet connection .
Wenn der Netzwerkauswahlalgorithmus Scanergebnisse erkennt, die mit dem bezahlten/privaten Vorschlag des OEM übereinstimmen, stellt er automatisch eine Verbindung als zweites Netzwerk her. Die Netzwerkauswahl für das primäre Wi-Fi-Netzwerk (das eine Internetverbindung zu regulären Apps bereitstellt) erfolgt normalerweise parallel.
Häufig gestellte Fragen (FAQ)
Haben sichere Netze immer Vorrang vor offenen Netzen?
Nein. Gespeichert im Vergleich zu vorgeschlagen und gemessen im Vergleich zu nicht gemessen sind die Hauptkategorien, in denen Netzwerke bewertet werden. Innerhalb jeder Kategorie haben sichere Netzwerke eine gewisse Priorität gegenüber offenen Netzwerken, aber der Qualität der Verbindung wird ein viel höheres Gewicht beigemessen.
Der Grund dafür ist, dass die eigentliche Sicherheit der Benutzerdaten durch eine Ende-zu-Ende-Verschlüsselung (z. B. TLS) gewährleistet ist. Sichere Netzwerke verschlüsseln nur den ersten Teil der Kommunikation, und selbst dann bieten Netzwerke mit vorinstallierten Schlüsseln nicht viel Privatsphäre.
Warum werden gespeicherte Netzwerke gegenüber vorgeschlagenen Netzwerken priorisiert?
Gespeicherte kostenlose (nicht gemessene) Netzwerke haben Vorrang vor vorgeschlagenen kostenlosen Netzwerken und gespeicherte getaktete Netzwerke haben Vorrang vor vorgeschlagenen getakteten Netzwerken.
Gespeicherte Netzwerke werden gegenüber vorgeschlagenen Netzwerken priorisiert, da gespeicherte Netzwerke Netzwerke sind, die der Benutzer dem Gerät ausdrücklich hinzugefügt hat. Das impliziert eine Präferenz, wenn möglich eine Verbindung zu diesen Netzwerken herzustellen.
Beachten Sie, dass Benutzer das automatische Verbindungsverhalten für einzelne gespeicherte Netzwerke deaktivieren können, dh angeben, dass diese Netzwerke nur manuell verwendet und nicht automatisch vom Gerät berücksichtigt werden sollen.
Kann ich die strenge Prioritätsreihenfolge ändern oder ganz entfernen?
Der Gerätehersteller kann die Entscheidungen zur Netzwerkauswahl modifizieren, indem er die in den obigen Abschnitten aufgeführten Bonus- Overlays modifiziert. Es wird jedoch nicht empfohlen, die Standardwerte zu ändern, da sie nach sorgfältiger Abwägung mehrerer Anwendungsfälle ausgewählt wurden.