Na tej stronie opisujemy algorytmy i procedury używane w Androidzie 12 do wybierania sieci Wi-Fi i przełączania się między nimi. Android stale ocenia jakość połączonej sieci i dostępnych sieci.
Cykl życia automatycznego połączenia
Opisuje proces, w którym urządzenie z Androidem ocenia dostępne sieci Wi-Fi i łączy się z nimi.
Urządzenie skanuje dostępne sieci w jeden z tych sposobów, w zależności od tego, czy ekran jest włączony czy wyłączony:
- Ekran włączony (połączony): podsystem łączności Androida regularnie sprawdza, czy bieżące połączenie jest wystarczająco dobre, aby pominąć skanowanie (zgodnie z definicją skanowania przy włączonym ekranie). Jeśli połączenie nie jest wystarczająco dobre, aby pominąć skanowanie, podsystem łączności wywołuje skanowanie w celu wykrycia dostępnych sieci. Skanowanie może być też wywoływane przez inne komponenty systemu, takie jak system lokalizacji lub aplikacja (w tym aplikacja Ustawienia).
- Ekran włączony (odłączony): podsystem łączności Androida okresowo skanuje sieć zgodnie z wykładniczym harmonogramem wycofywania. Moduł ocenia wszystkie otrzymane wyniki skanowania i próbuje wybrać najlepszą sieć, z którą można się połączyć.
- Ekran wyłączony (odłączony): procesor hosta programuje oprogramowanie sprzętowe za pomocą listy preferowanych sieci, korzystając z funkcji skanowania PNO (Preferred Network Offload), gdy tylko ekran się wyłączy. Oprogramowanie sprzętowe wybudza hosta, jeśli znajdzie którąś z preferowanych sieci. AOSP zakłada, że urządzenie obsługuje PNO.
Metody
WifiManager#allowAutojoinGlobal(boolean)
można użyć do wyłączenia automatycznych połączeń. Jest to uprzywilejowany interfejs API, z którego producenci urządzeń mogą korzystać w ograniczonych okolicznościach (np. w przypadku urządzeń niemobilnych, wstępnie skonfigurowanych).Jeśli urządzenie jest połączone, a nakładka
config_wifi_framework_enable_associated_network_selection
jest ustawiona nafalse
, nie są przeprowadzane żadne skanowania łączności, a wyniki skanowania nie powodują wyboru sieci. To ustawienie nie ma wpływu na działanie urządzenia, gdy jest ono odłączone, co oznacza, że skanowanie łączności i wybór sieci nadal będą się odbywać.Wyniki skanowania są oceniane.
Jeśli urządzenie jest połączone z siecią Wi-Fi, platforma sprawdza, czy bieżąca sieć jest wystarczająco dobra, aby pominąć wybór sieci.
Sieć jest uznawana za wystarczająco dobrą, aby pominąć wybór sieci, jeśli spełnia dowolne z tych wymagań:
- Od ostatniego wyboru sieci minęło mniej niż 10 sekund.
- Użytkownik niedawno ręcznie połączył się z siecią (gdzie „niedawno” można skonfigurować za pomocą nakładki
config_wifiSufficientDurationAfterUserSelectionMilliseconds
). - Urządzenie jest połączone z siecią OSU.
Spełnione są wszystkie te wymagania:
- Wartość RSSI jest powyżej wymaganego progu RSSI lub przez połączenie przepływa wystarczający ruch (więcej informacji znajdziesz w sekcji Skanowanie przy włączonym ekranie, w której opisano progi RSSI i ruchu).
- Sieć jest zweryfikowana (połączona z internetem) lub zatwierdzona przez użytkownika do użytku bez dostępu do internetu.
- Sieć nie jest mierzona.
Jeśli sieć jest wystarczająco dobra, aby pominąć wybór sieci, nie są podejmowane żadne dalsze działania.
Jeśli połączona sieć Wi-Fi nie jest wystarczająco dobra lub urządzenie nie jest połączone z siecią, platforma wywołuje nominatory sieci, aby wygenerować listę kandydatów na sieci Wi-Fi, z którymi można się połączyć na podstawie filtrowanych wyników skanowania. Nominujący sieci znajdują istniejące konfiguracje Wi-Fi lub tworzą nowe konfiguracje dla sieci kandydujących.
Wyniki skanowania są filtrowane w celu usunięcia identyfikatorów BSSID, których wskaźnik RSSI jest niższy niż wskaźnik RSSI wejścia (można go skonfigurować za pomocą nakładek
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
iconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
). Dodatkowo odfiltrowywane są zablokowane identyfikatory BSSID. Identyfikatory BSSID mogą być blokowane na podstawie powtarzających się nieudanych połączeń, częstych rozłączeń i wyraźnych żądań punktu dostępu, aby nie podejmować prób powiązania przez określony czas (MBO-OCE). Blokowanie BSSID opisaliśmy poniżej w sekcji Blokowanie identyfikatorów SSID i BSSID.Gdy urządzenie szybko się porusza, wyniki skanowania są opcjonalnie dodatkowo filtrowane, aby usunąć identyfikatory BSSID, których RSSI szybko się zmienia (co wskazuje, że nie poruszają się one razem z urządzeniem). Tę optymalizację można skonfigurować za pomocą ustawień
config_wifiHighMovementNetworkSelectionOptimizationEnabled
(włączanie i wyłączanie optymalizacji) oraz nakładekconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMs
iconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta
, które konfigurują wymagania dotyczące stabilności wyników skanowania (zmiana RSSI w wynikach skanowania wystarczająco oddalonych od siebie w czasie).
Platforma uruchamia moduł oceny kandydatów, aby wygenerować ocenę dla każdego identyfikatora zestawu usług (SSID). Kandydaci na identyfikator SSID mogą obejmować wielu kandydatów na identyfikator podstawowego zestawu usług (BSSID) (generowanych przez nominujących sieci). Kandydat z najwyższym wynikiem jest zwycięzcą.
Platforma wykonuje algorytm wyboru połączenia użytkownika, który może sprawić, że wybrana przez użytkownika sieć stanie się nowym zwycięskim kandydatem zamiast zwycięskiego kandydata z modułu oceny kandydatów.
Framework określa, czy zwycięski kandydat pasuje do aktualnie połączonej sieci. Aby uznać dopasowanie, musi być spełniony jeden z tych warunków:
- Wybrany kandydat i połączona sieć Wi-Fi mają ten sam identyfikator BSSID.
- Jeśli dostępny jest roaming oprogramowania sprzętowego (w tym możliwość czarnej listy identyfikatorów BSSID), wybrana sieć i połączona sieć mają ten sam identyfikator SSID i typ zabezpieczeń.
Jeśli zwycięski kandydat odpowiada obecnie połączonej sieci, nie są podejmowane żadne dalsze działania. Jeśli zwycięski kandydat nie pasuje do sieci, urządzenie jest powiązane ze zwycięskim kandydatem.
Pamiętaj, że automatyczne połączenie z siecią jest wyłączone, gdy aplikacja korzysta z interfejsu Wi-Fi Network Request API. Zastępuje on system i tworzy lokalną sieć bez dostępu do internetu, z wyjątkiem urządzeń, które obsługują 2 jednoczesne stacje.
Ocena połączonej sieci
Platforma lub oprogramowanie Androida okresowo ocenia jakość połączonej sieci. W tej sekcji opisujemy, jak oceniana jest połączona sieć, gdy ekran jest włączony lub wyłączony.
Ta ocena jest przeprowadzana oprócz opisanego powyżej wyboru sieci.
Ekran włączony
Platforma Android ocenia połączoną sieć w ten sposób:
Usługa Wi-Fi odpytuje statystyki RSSI i warstwy łącza co 3 sekundy (można to skonfigurować za pomocą nakładki
config_wifiPollRssiIntervalMilliseconds
).Jeśli dynamiczna korekta interwału jest włączona za pomocą nakładki
config_wifiAdjustPollRssiIntervalEnabled
, interwał odpytywania zmienia się dynamicznie w zależności od stanu mobilności urządzenia i wartości RSSI.- Gdy urządzenie jest nieruchome i poziom RSSI jest wyższy niż -68 dBm (konfigurowany przez nakładki
config_wifiClientRssiMonitorThresholdDbm
iconfig_wifiClientRssiMonitorHysteresisDb
), interwał odpytywania jest wydłużany do 6 sekund (konfigurowany przez nakładkęconfig_wifiPollRssiLongIntervalMilliseconds
). - Gdy urządzenie jest w ruchu lub poziom sygnału RSSI jest niższy niż -73 dBm (skonfigurowany przez nakładkę
config_wifiClientRssiMonitorThresholdDbm
), interwał odpytywania jest zmniejszany z powrotem do 3 sekund (skonfigurowany przez nakładkęconfig_wifiPollRssiIntervalMilliseconds
).
- Gdy urządzenie jest nieruchome i poziom RSSI jest wyższy niż -68 dBm (konfigurowany przez nakładki
Usługa Wi-Fi oblicza wynik połączenia na podstawie wskaźnika RSSI i statystyk warstwy łącza.
Usługa Wi-Fi przekazuje wynik do usługi łączności, która na jego podstawie określa, czy połączyć się z siecią Wi-Fi, czy z innym dostępnym typem sieci, np. komórkową.
Ekran jest wyłączony
Platforma nie inicjuje oceny w połączonej sieci, ale proces wyboru sieci może nadal zachodzić, jeśli skanowanie jest inicjowane przez inne komponenty (np. usługi lokalizacyjne). Oprogramowanie sprzętowe ocenia jakość sieci. Jeśli jest ona słaba, oprogramowanie może przełączyć się na inną sieć lub (ostatecznie) odłączyć się od sieci i wznowić działanie hosta.
Skanowanie połączeń
Skanowanie jest przeprowadzane automatycznie w zależności od tego, czy ekran urządzenia jest włączony, wyłączony i połączony z Wi-Fi, czy wyłączony i niepołączony z Wi-Fi.
Ekran włączony
Gdy ekran jest włączony, platforma wywołuje decyzje o skanowaniu w coraz dłuższych odstępach czasu. Interwały decyzji skanowania są konfigurowane za pomocą nakładek config_wifiDisconnectedScanIntervalScheduleSec
, config_wifiConnectedScanIntervalScheduleSec
i config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec
(które są tablicami liczb całkowitych). Domyślnie skanowanie odbywa się w interwałach wykładniczego wycofywania wynoszących 20, 40, 80 i 160 sekund, a kolejne skanowania mogą być wykonywane w interwałach 160-sekundowych (są to domyślne wartości tych nakładek).
Interwały skanowania z wykładniczym wycofywaniem są resetowane i ponownie uruchamiane co 20 sekund za każdym razem, gdy zmienia się stan ekranu, czyli gdy jest on włączany lub wyłączany.
(Android 13 lub nowszy) Jeśli w czasie działania aplikacji potrzebne są różne interwały skanowania, uprzywilejowana aplikacja OEM może wywołać interfejs WifiManager#setScreenOnScanSchedule(screenOnScanSchedule)
API, aby dynamicznie ustawić harmonogram skanowania przy włączonym ekranie.
Decyzja o wykonaniu lub pominięciu skanowania zależy od tego, czy bieżące połączenie sieciowe jest wystarczająco dobre, aby pominąć skanowanie. Połączenie jest wystarczająco dobre, aby pominąć skanowanie, jeśli spełnia co najmniej jedno z tych wymagań:
- Urządzenie jest połączone z siecią OSU.
- Przez połączenie przepływa wystarczająca ilość ruchu (patrz progi ruchu poniżej).
- Wartość RSSI jest powyżej wymaganego progu RSSI (patrz progi RSSI poniżej)i wybór sieci został przeprowadzony niedawno (domyślnie 10 minut, ale można go skonfigurować za pomocą nakładki
config_wifiConnectedHighRssiScanMinimumWindowSizeSec
)i sieć jest zweryfikowana (połączona z internetem) lub zatwierdzona przez użytkownika do użytku bez dostępu do internetu.
Wartości progowe RSSI i ruchu to:
- Wartość RSSI jest wyższa niż -73 dBm w przypadku pasma 2,4 GHz skonfigurowanego z nakładką
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
lub -70 dBm w przypadku pasm 5 GHz i 6 GHz skonfigurowanych z nakładkamiconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHz
iconfig_wifiFrameworkScoreLowRssiThreshold6ghz
. - Ruch (wysyłanie lub odbieranie) przekracza 16 pakietów na sekundę (pps) skonfigurowanych za pomocą nakładki
config_wifiFrameworkMinPacketPerSecondActiveTraffic
.
Gdy urządzenie jest podłączone, a ekran jest włączony. Połączony moduł oceniający okresowo monitoruje jakość Wi-Fi, sprawdzając sygnały takie jak RSSI i liczba przesłanych pakietów. Jeśli jakość Wi-Fi zostanie uznana za słabą (zgodnie z opisem poniżej), a urządzenie obsługuje 2 stacje działające jednocześnie, zostanie uruchomione skanowanie. Nakładkę config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
można wykorzystać do skonfigurowania progu wyniku, który uruchamia skanowanie. Nakładkę config_wifiLowConnectedScoreScanPeriodSeconds
można wykorzystać do skonfigurowania okresu tych skanów.
Ekran wyłączony i połączony z Wi-Fi
Gdy ekran jest wyłączony, a urządzenie jest połączone z siecią Wi-Fi, oprogramowanie sprzętowe (Wi-Fi SoC) przeprowadza skanowanie w roamingu. Gdy ekran jest wyłączony, platforma nie przeprowadza żadnych skanów.
Ekran jest wyłączony i nie ma połączenia z Wi-Fi (stan rozłączenia).
Gdy ekran jest wyłączony, a Wi-Fi odłączone, oprogramowanie sprzętowe wykonuje skanowanie PNO w poszukiwaniu identyfikatorów SSID. Platforma konfiguruje oprogramowanie sprzętowe za pomocą listy identyfikatorów SSID do skanowania i listy kanałów, na których ma się odbywać skanowanie. Jeśli zostanie znaleziony skonfigurowany identyfikator SSID, oprogramowanie układowe wybudzi platformę.
Framework konfiguruje też interwał, w którym oprogramowanie sprzętowe ma przeprowadzać skanowanie PNO, używając stanu mobilności urządzenia do wybierania różnych interwałów skanowania.
Gdy urządzenie jest w stanie niskiej mobilności (jest nieruchome), interwał wynosi 60 sekund w przypadku pierwszych 3 skanów (kontrolowanych przez nakładkę config_wifiStationaryPnoScanIntervalMillis
) i 180 sekund (stały 3-krotny mnożnik nakładki) w przypadku kolejnych skanów. W stanie wysokiej mobilności interwał wynosi 20 sekund w przypadku pierwszych 3 skanów (kontrolowanych przez config_wifiMovingPnoScanIntervalMillis
), a 60 sekund (stały mnożnik 3x) w przypadku kolejnych skanów.
Osoby nominujące w sieci
Osoby nominujące sieci znajdują lub tworzą konfiguracje
(WifiConfiguration
)
dla sieci, które:
- Dostępna (na podstawie wyników skanowania) lub połączona sieć (której czasami brakuje w niestabilnych wynikach skanowania).
- mieć minimalny poziom RSSI; Minimalna wartość RSSI wynosi -80 dBm w przypadku pasma 2,4 GHz i -77 dBm w przypadku pasm 5 GHz i 6 GHz.Można ją skonfigurować za pomocą nakładek
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
iconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
. - Nie jest zablokowane, np. z powodu wcześniejszych niepowodzeń połączenia.
- Sieć nie wskazuje, że jest bezużyteczna (np. przy użyciu MBO/OCE).
- Może być powiązane z używaniem danych logowania dostępnych na urządzeniu.
Używane są te nominacje sieciowe:
- Nominator zapisanej sieci: ocenia wszystkie zapisane sieci (w tym zapisane subskrypcje Passpoint).
- Sugerowany mianownik sieci: ocenia wszystkie sieci udostępniane przez aplikacje za pomocą interfejsu Suggestion API (w tym sugerowane subskrypcje Passpoint).
Osoby oceniające kandydatów
Osoby oceniające kandydatów oceniają każdego z nich i przyznają mu punkty. Wynik dla ThroughputScorer
(domyślnego narzędzia do oceny) zależy od tych czynników:
- Wynik podstawowy jest obliczany na podstawie wskaźnika RSSI, który jest ograniczony do -73 dBm w przypadku pasma 2,4 GHz lub -70 dBm w przypadku pasm 5 GHz i 6 GHz (skonfigurowanych z nakładkami
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_low_rssi_threshold_5GHz
iconfig_wifiFrameworkScoreLowRssiThreshold6ghz
). - Wzmocnienie wyniku jest obliczane na podstawie szacowanej przepustowości uzyskanej na podstawie technologii, częstotliwości kanału, przepustowości, RSSI, warunków kanału, maksymalnej liczby strumieni przestrzennych i innych parametrów. Wzmocnienie wyniku można skonfigurować za pomocą nakładek
config_wifiFrameworkThroughputBonusNumerator
iconfig_wifiFrameworkThroughputBonusDenominator
. Jest ono ograniczone do maksymalnej wartości określonej za pomocą nakładkiconfig_wifiFrameworkThroughputBonusLimit
. - Sieć kandydująca, która została niedawno wybrana przez użytkownika lub aplikację, otrzymuje duży wzrost wyniku na czas konfigurowalny za pomocą nakładki
config_wifiFrameworkLastSelectionMinutes
(w tym czasie sieć jest wybierana przed sieciami niewybranymi przez użytkownika). - Kandydat, który pasuje do bieżącej sieci, otrzymuje dodatkową ocenę skonfigurowaną przez nakładki
config_wifiFrameworkCurrentNetworkBonusMin
iconfig_wifiFrameworkCurrentNetworkBonusPercent
(dodatkowy bonus jest obliczany na podstawie procentu jego oceny RSSI i przepustowości, aż do konfigurowalnego minimum). - Bezpieczna sieć ma wyższą ocenę niż sieć otwarta. Bonus jest konfigurowany za pomocą nakładki
config_wifiFrameworkSecureNetworkBonus
. - Sieć bez pomiaru (bezpłatna) ma wyższą ocenę niż sieć z pomiarem (płatna).
Bonus jest konfigurowany za pomocą nakładki
config_wifiFrameworkUnmeteredNetworkBonus
. - Zapisana sieć ma wyższą ocenę niż sieć sugerowana za pomocą interfejsu Suggestion API. Bonus jest konfigurowany za pomocą nakładki
config_wifiFrameworkSavedNetworkBonus
. - Niezaufane sieci (o które można poprosić w ramach interfejsu Suggestion API) mają niższą ocenę niż inne sieci.
- Sieć, w której wcześniej nie wykryto internetu, otrzymuje wynik 0, jeśli urządzenie jest obecnie połączone z inną siecią, która ma dostęp do internetu.
Domyślny bonus za zapisane w porównaniu z sugerowanymi i nielimitowane w porównaniu z limitowanymi (czyli domyślne wartości nakładki) tworzy ścisłą kolejność priorytetów dla zapisanych, sugerowanych, limitowanych i nielimitowanych:
- Zapisane sieci bez pomiaru
- Sugerowane sieci bez pomiaru
- Zapisane sieci z pomiarem użycia danych
- Sugerowane sieci z pomiarem użycia danych
Oznacza to, że zapisana sieć bez limitu danych (bezpłatna) jest zawsze wybierana przed zapisaną siecią z limitem danych (płatną). Ostatnio wybrany (przez użytkownika lub aplikację) bonus do wyniku może zastąpić ten ścisły priorytet.
Można zainstalować kilka modułów oceniających kandydatów, ale w danym momencie może być aktywny tylko jeden z nich. Pozostałe funkcje oceniające można wykorzystać w przypadku danych (aby zbadać alternatywne algorytmy). W Androidzie 11 domyślny moduł oceniający to ThroughputScorer
.
Blokowanie identyfikatorów SSID i BSSID
Framework może blokować identyfikatory SSID lub BSSID, czyli nie brać ich pod uwagę przy połączeniach tymczasowych lub stałych.
Blokowanie BSSID
Blokowanie BSSID polega na prowadzeniu 2 liczników błędów – licznika ciągłych błędów i licznika serii – dla każdego typu błędu (listę typów błędów znajdziesz poniżej). Gdy wystąpi awaria:
- Zwiększa się licznik odpowiedniego typu błędu.
- Jeśli zostanie osiągnięty próg niepowodzeń dla danego typu błędu:
- Identyfikator BSSID jest zablokowany.
- Licznik serii niepowodzeń zostanie zwiększony.
Czas blokowania identyfikatora BSSID zaczyna się od (konfigurowalnej) wartości bazowej (określonej przez nakładki config_wifiBssidBlocklistMonitorBaseBlockDurationMs
lub config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
, w zależności od RSSI) i wzrasta wykładniczo do konfigurowalnej górnej granicy (określonej przez nakładkę config_wifiBssidBlocklistMonitorFailureStreakCap
). Czas trwania wydłuża się, jeśli błędy występują nieprzerwanie w tym samym identyfikatorze BSSID. Czas trwania to czas bazowy zwiększony wykładniczo przez serię niepowodzeń, czyli seria niepowodzeń o długości 2 oznacza 4-krotny czas trwania bloku bazowego.
Progi blokowania identyfikatora BSSID zależą od przyczyny niepowodzenia i można je dostosować za pomocą nakładek:
- Punkt dostępu odrzuca powiązanie, używając kodu MBO/OCE Nie można obsłużyć nowej stacji:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
. - Weryfikacja internetu w tej sieci nie powiodła się:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
. - Nieprawidłowe hasło – kod błędu uwierzytelniania:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold
. - Kod błędu uwierzytelniania EAP w przypadku sieci EAP:
config_wifiBssidBlocklistMonitorEapFailureThreshold
. - Odrzucenie powiązania, inne ogólne odrzucenia powiązania:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold
- Czas oczekiwania na powiązanie:
config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold
. - Błąd uwierzytelniania, inne ogólne błędy uwierzytelniania:
config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold
. - Błąd DHCP, nie udało się udostępnić DHCP:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold
. - Nieprawidłowe rozłączenie – urządzenie rozłączyło się z siecią w bardzo krótkim czasie po połączeniu:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold
. Okres można skonfigurować za pomocą parametruconfig_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs
.
Warunki czyszczenia listy blokowanych identyfikatorów BSSID
Identyfikator BSSID jest usuwany z listy zablokowanych, gdy:
- Wi-Fi jest przełączone: wszystkie identyfikatory BSSID zostaną usunięte z listy zablokowanych.
- Użytkownik klika sieć w selektorze Wi-Fi: wszystkie identyfikatory BSSID wybranej przez użytkownika sieci są usuwane z listy zablokowanych.
- Limit czasu: identyfikatory BSSID są usuwane z listy zablokowanych po upływie czasu blokady.
- Ponowne uruchomienie: wszystkie listy blokowania zostaną wyczyszczone.
- Sieć usunięta: wszystkie identyfikatory BSSID powiązane z tą siecią zostaną usunięte z listy zablokowanych.
Warunki resetowania liczników niepowodzeń i serii:
- Uruchom ponownie: zresetuj wszystkie identyfikatory BSSID.
- Sieć usunięta: zresetuj identyfikatory BSSID powiązane z siecią.
Udało się nawiązać połączenie warstwy 2: zresetuj połączenie w przypadku tych kodów błędów.
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
(warunkowo wyczyszczone tylko wtedy, gdy ostatni raz urządzenie połączyło się z tym identyfikatorem BSSID ponad 3 godziny temu)REASON_NONLOCAL_DISCONNECT_CONNECTING
Weryfikacja sieci zakończona powodzeniem: resetuje następujący kod błędu.
REASON_NETWORK_VALIDATION_FAILURE
Udana obsługa administracyjna DHCP: resetowanie w przypadku tego kodu błędu.
REASON_DHCP_FAILURE
Blokowanie identyfikatorów SSID
Blokowanie identyfikatora SSID działa podobnie do blokowania identyfikatora BSSID. Licznik błędów dla każdego typu błędu w danej sieci jest zwiększany, gdy występują błędy połączenia (tego typu).
Gdy liczba niepowodzeń określonego typu przekroczy próg, identyfikator SSID zostanie trwale lub tymczasowo zablokowany na podstawie konfiguracji. Konfiguracja każdego typu błędu jest zakodowana w WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS
i podsumowana poniżej.
* W przypadku tymczasowo wyłączonych sieci czas wyłączenia zmienia się dynamicznie w zależności od liczby kolejnych błędów połączenia w danej sieci. Jeśli sieć nie połączy się 5 razy z rzędu, każde kolejne niepowodzenie spowoduje dwukrotne wydłużenie czasu wyłączenia w porównaniu z poprzednim czasem. Na przykład: sieć, w której wystąpi 5 kolejnych błędów, zostanie wyłączona na 5 minut, a po 6 błędzie na 10 minut, po 7 błędzie na 20 minut itd. aż do maksymalnego limitu 18 godzin. |
||||
Kod błędu | Opis | Próg | Podstawowy czas wyłączenia* | Wyłącz typ |
---|---|---|---|---|
DISABLED_DHCP_FAILURE |
Nie udało się udostępnić DHCP | 5 | 5 minut | Tymczasowe |
DISABLED_NO_INTERNET_TEMPORARY |
Weryfikacja sieci nie powiodła się, ale użytkownik chce nadal łączyć się z tą siecią w przyszłości | 1 | 10 minut, | Tymczasowe |
DISABLED_AUTHENTICATION_NO_CREDENTIALS |
Klient nie ma danych logowania, aby połączyć się z siecią | 1 | NA | Na stałe |
DISABLED_NO_INTERNET_PERMANENT |
Domyślne ustawienie w przypadku niepowodzenia weryfikacji sieci | 1 | NA | Na stałe |
DISABLED_BY_WIFI_MANAGER |
Nieużywane i wycofane | 1 | NA | Na stałe |
DISABLED_BY_WRONG_PASSWORD |
Hasło jest nieprawidłowe, a sieć nigdy nie została połączona. | 1 | NA | Na stałe |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
Błąd EAP, gdy karta SIM nie jest subskrybowana | 1 | NA | Na stałe |
DISABLED_ASSOCIATION_REJECTION |
Błędy odrzucenia powiązania | 5 | 5 minut | Tymczasowe |
DISABLED_AUTHENTICATION_FAILURE |
Inne błędy uwierzytelniania (czyli nie nieprawidłowe hasło ani błąd EAP) | 5 | 5 minut | Tymczasowe |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR |
Błąd EAP specyficzny dla dostawcy (prywatny). | 1 | NA | Na stałe |
DISABLED_NETWORK_NOT_FOUND |
Klient nie znalazł w wynikach skanowania sieci, która pasuje do sieci, o którą poprosił framework (w tym do możliwości sieci). | 2 | 5 minut | Tymczasowe |
DISABLED_CONSECUTIVE_FAILURES |
Nie udało się połączyć z siecią co najmniej 5 razy z rzędu. Rodzaje błędów obejmują m.in. te wymienione w tej tabeli. |
5 | 5 minut | Tymczasowe |
Tymczasowo wyłączona sieć jest ponownie włączana, gdy:
- Okres wyłączenia minął.
- Użytkownik ręcznie wybiera sieć, z którą chce się połączyć.
- Użytkownik włącza lub wyłącza Wi-Fi.
- System zostanie ponownie uruchomiony.
- Sieć została wyłączona przy bardzo niskim poziomie RSSI, ale później została ponownie wykryta przy umiarkowanym lub wyższym poziomie RSSI.
Trwale wyłączona sieć zostanie ponownie włączona, gdy:
- Użytkownik ręcznie wybiera sieć, z którą chce się połączyć.
Liczniki błędów sieci są resetowane, gdy:
- Sieć zostanie usunięta.
- Urządzenie zostało połączone z siecią.
- Sieć została ponownie włączona po upływie czasu wyłączenia.
- Użytkownik ręcznie wybiera sieć, z którą chce się połączyć.
- System zostanie ponownie uruchomiony.
Karty wyników
Karty wyników, wprowadzone w Androidzie 10, rejestrują na urządzeniu statystyki dotyczące identyfikatorów BSSID. Karty wyników są przechowywane za pomocą usługi
IpMemoryStore
.
Karty wyników nie są używane w Androidzie 11 do wybierania sieci.
Wybór użytkownika dotyczący połączenia
Android ma algorytm wyboru połączenia użytkownika, który umożliwia preferowanie w procesie wyboru sieci Wi-Fi, z którymi użytkownik połączył się bezpośrednio, np. sieci domowej. Użytkownicy mogą preferować takie sieci od sieci publicznych, nawet jeśli ich wydajność jest niższa niż w przypadku sieci publicznej, ponieważ zapewniają one dodatkowe usługi, takie jak możliwość sterowania urządzeniami domowymi.
Preferencje użytkownika dotyczące sieci są rejestrowane przez oznaczenie wszystkich widocznych konfiguracji Wi-Fi i siły ich sygnału w momencie, gdy użytkownik wybiera sieć. Jeśli podczas automatycznego wyboru zostanie wybrana jedna z oznaczonych konfiguracji Wi-Fi, a sieć wybrana przez użytkownika będzie dostępna, algorytm wyboru sieci przez użytkownika zastąpi wybór siecią wybraną przez użytkownika, jeśli zostaną spełnione te warunki:
- Sieć wybrana przez użytkownika miała dostęp do internetu podczas ostatniego użycia.
- Siła sygnału wybranego połączenia użytkownika nie jest gorsza niż w momencie pierwotnego wyboru z uwzględnieniem marginesu błędu. Ten margines błędu można skonfigurować za pomocą nakładki
config_wifiEstimateRssiErrorMarginDb
.
Wybór sieci użytkownika pozostaje aktywny po ponownym uruchomieniu. Opcja wyboru połączenia użytkownika działa w przypadku zapisanych sieci, sieci Passpoint i sugerowanych sieci.
Dwie stacje działające równocześnie
W tej sekcji opisujemy wybór sieci Wi-Fi, gdy urządzenie obsługuje jednoczesne połączenie z 2 sieciami Wi-Fi.
Make-before-break
Jeśli funkcja make-before-break jest włączona, urządzenie próbuje połączyć się z nową siecią przed rozłączeniem się ze starą. Proces „make-before-break” korzysta z tego samego algorytmu wyboru sieci co przełączanie sieci „break-before-make” (czyli gdy urządzenie odłącza się od starej sieci przed połączeniem z nową). Jeśli algorytm wyboru sieci wybierze sieć, której nie można przełączyć za pomocą metody make-before-break, urządzenie automatycznie powróci do metody break-before-make.
Jednoczesne połączenie z siecią ograniczoną i internetem
Jeśli funkcja jednoczesnego połączenia z siecią ograniczoną i internetem jest włączona, urządzenie może łączyć się z dodatkową siecią Wi-Fi o ograniczonym dostępie, która jest dostępna tylko dla wybranych aplikacji skonfigurowanych przez producenta urządzenia. Instrukcje dla producentów urządzeń dotyczące konfigurowania tej funkcji znajdziesz w artykule Jednoczesne połączenie z siecią ograniczoną i internetem.
Gdy algorytm wyboru sieci wykryje wyniki skanowania pasujące do płatnej lub prywatnej sugestii OEM, automatycznie łączy się z nią jako z drugą siecią. Wybór sieci dla głównej sieci Wi-Fi (która zapewnia połączenie z internetem dla zwykłych aplikacji) odbywa się normalnie równolegle.
Najczęstsze pytania
Czy sieci bezpieczne mają zawsze wyższy priorytet niż sieci otwarte?
Nie. Zapisane a sugerowane oraz z pomiarem użycia danych a bez pomiaru to główne kategorie, w których oceniane są sieci. W każdej kategorii bezpieczne sieci mają pewien priorytet nad otwartymi sieciami, ale znacznie większą wagę przykłada się do jakości połączenia.
Dzieje się tak, ponieważ rzeczywiste bezpieczeństwo danych użytkownika zapewnia szyfrowanie typu end-to-end (np. TLS). Sieci bezpieczne szyfrują tylko pierwszy etap komunikacji, a nawet wtedy w przypadku sieci z wstępnie udostępnionymi kluczami nie zapewniają dużej prywatności.
Dlaczego zapisane sieci mają wyższy priorytet niż sugerowane?
Zapisane bezpłatne (bez pomiaru użycia danych) sieci mają wyższy priorytet niż sugerowane bezpłatne sieci, a zapisane sieci z pomiarem użycia danych mają wyższy priorytet niż sugerowane sieci z pomiarem użycia danych.
Zapisane sieci mają wyższy priorytet niż sugerowane, ponieważ użytkownik dodał je do urządzenia samodzielnie. Oznacza to, że w miarę możliwości preferowane jest łączenie się z tymi sieciami.
Pamiętaj, że użytkownicy mogą wyłączyć automatyczne łączenie w przypadku poszczególnych zapisanych sieci, czyli wskazać, że te sieci mają być używane tylko ręcznie i nie mają być automatycznie brane pod uwagę przez urządzenie.
Czy mogę zmienić kolejność ścisłego priorytetu lub całkowicie go usunąć?
Producent urządzenia może modyfikować decyzje dotyczące wyboru sieci, zmieniając nakładki bonusowe wymienione w sekcjach powyżej. Nie zalecamy jednak zmiany wartości domyślnych, ponieważ zostały one wybrane po dokładnym rozważeniu wielu przypadków użycia.