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ść podłączonej sieci i dostępnych sieci.
Cykl życia automatycznego połączenia
W tej sekcji opisujemy, jak urządzenie z Androidem ocenia dostępne sieci Wi-Fi i się z nimi łączy.
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ą w skanach 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, np. system lokalizacji lub aplikację (w tym aplikację Ustawienia).
- Ekran włączony (rozłączony): podsystem łączności Androida przeprowadza okresowe skanowanie zgodnie z harmonogramem wzrastającego czasu do ponowienia. 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 ze skanów 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 interfejs API z uprawnieniami, którego producenci urządzeń mogą używać 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_selectionjest ustawiona nafalse, nie są przeprowadzane żadne skanowania łączności, a wyniki skanowania nie powodują wyboru sieci. To ustawienie nie ma wpływu na odłączone urządzenie, 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 obecna 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:
- Wskaźnik siły odbieranego sygnału (RSSI) jest większy niż wymagany próg RSSI lub przez połączenie przepływa wystarczająca ilość danych (wartości progowe RSSI i danych znajdziesz w sekcji Skanowanie przy włączonym ekranie).
- Sieć jest zweryfikowana (połączona z internetem) lub zatwierdzona przez użytkownika do użytku bez dostępu do internetu.
- Sieć jest bez pomiaru.
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 na podstawie filtrowanych wyników skanowania wygenerować listę sieci Wi-Fi, z którymi można się połączyć. Nominujący sieci wyszukują 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 wartość RSSI jest mniejsza niż wartość RSSI wejścia (można to skonfigurować za pomocą nakładek
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHziconfig_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 zostało opisane w sekcji dotyczącej blokowania 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ą ustawienia
config_wifiHighMovementNetworkSelectionOptimizationEnabled(włączanie lub wyłączanie optymalizacji) oraz nakładekconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMsiconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta, które konfigurują wymaganie 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ć wynik dla każdego kandydata SSID. Kandydaci na identyfikator SSID mogą obejmować wielu kandydatów na identyfikator BSSID (wygenerowanych przez nominujących sieć). Zwycięzcą jest kandydat z najwyższym wynikiem.
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 algorytmu oceny kandydatów.
Określa, czy zwycięski kandydat pasuje do połączonej sieci. Aby uznać, że nastąpiło 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ść blokowania identyfikatorów BSSID), zwycięska sieć i połączona sieć mają ten sam identyfikator SSID i typ zabezpieczeń.
Jeśli zwycięski kandydat pasuje do połączonej sieci, nie są podejmowane żadne dalsze działania. Jeśli zwycięski kandydat nie pasuje do sieci, urządzenie łączy się ze zwycięskim kandydatem.
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 wyboru sieci omówionego w poprzednich sekcjach.
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 wartość RSSI jest większa niż -68 dBm (konfigurowana przez nakładki
config_wifiClientRssiMonitorThresholdDbmiconfig_wifiClientRssiMonitorHysteresisDb), interwał sondowania 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 ponownie skracany do 3 sekund (skonfigurowany przez nakładkęconfig_wifiPollRssiIntervalMilliseconds).
- Gdy urządzenie jest nieruchome i wartość RSSI jest większa niż -68 dBm (konfigurowana przez nakładki
Usługa Wi-Fi oblicza wynik połączenia na podstawie wskaźnika RSSI i statystyk warstwy łącza. Do tego obliczenia dostępne są 2 modele, które można skonfigurować za pomocą parametru
config_internalScorerType:- Domyślnie: moduł oceniający oparty na uczeniu maszynowym, trenowany na statystykach warstwy łącza.
- Alternatywa: starszy system oceny, który ocenia na podstawie zmian wartości RSSI.
Opcjonalnie: producenci OEM mogą dostosować logikę oceny połączonej sieci, wdrażając zewnętrzną aplikację do oceny. W tym celu należy wdrożyć interfejs
WifiConnectedNetworkScoreri zarejestrować go za pomocą interfejsu APIWifiManager#setWifiConnectedNetworkScorer(executor, scorer).Po zarejestrowaniu zewnętrzny system oceny współdziała z platformą w ramach tego dwukierunkowego procesu:
Dane wejściowe (framework → moduł oceniający)
Framework powiadamia moduł oceniający o kluczowych zdarzeniach związanych z cyklem życia i jakością:- Cykl życia sesji: symbole
onStart()ionStop()wskazują, kiedy połączenie Wi-Fi zostało rozpoczęte lub zakończone. - Statystyki Wi-Fi: moduł oceniający otrzymuje okresowe aktualizacje statystyk warstwy łącza (takich jak RSSI, szybkość łącza i liczba pakietów) za pomocą
OnWifiUsabilityStatsListener#onWifiUsabilityStats(). Aby otrzymywać te aktualizacje, oceniający musi zarejestrować detektor za pomocą funkcjiWifiManager#addOnWifiUsabilityStatsListener().
- Cykl życia sesji: symbole
Działania (moduł oceniający → platforma)
Moduł oceniający kieruje usługą Wi-Fi, wywołując metody w obiekcie wywołania zwrotnegoScoreUpdateObserver:- Stan użyteczności: połączenia
notifyStatusUpdate(sessionId, isUsable)to główny mechanizm sterowania wyborem sieci.isUsable = true: sieć jest prawidłowa. Framework promuje ją do domyślnej sieci dla ruchu systemowego.isUsable = false: sieć jest nieprawidłowa. Framework unika używania tej sieci jako domyślnej, co powoduje powrót do mobilnej transmisji danych.
- Sprawdzanie dostępności: wywołanie
requestNudOperation()powoduje aktywne sprawdzenie niedostępności sąsiada (NUD) (np. sondę ARP lub ND), aby sprawdzić, czy brama jest dostępna. - Dodawanie identyfikatora BSSID do listy zablokowanych: wywołanie
blocklistCurrentBssid()uniemożliwia urządzeniu ponowne połączenie z bieżącym punktem dostępu. Jest to przydatne, jeśli system wykryje problemy związane z AP.
- Stan użyteczności: połączenia
Jeśli producent OEM wdrożył własny moduł oceniający zgodnie z opisem w kroku 3, usługa Wi-Fi przekazuje decyzje związane z oceną połączonej sieci do modułu oceniającego producenta OEM.
Jeśli producent OEM nie wdrożył własnego modułu oceniającego, usługa Wi-Fi używa wyniku obliczonego w kroku 2, aby określić, czy przełączyć się na mobilną transmisję danych w celu uzyskania dostępu do internetu.
Ekran jest wyłączony
Framework 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 wybudzić 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. Przedział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ę z wykorzystaniem wzrastającego czasu do ponowienia z interwałami 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 wzrastającym czasem do ponowienia są resetowane i ponownie uruchamiane co 20 sekund, 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 którekolwiek z tych wymagań:
- Urządzenie jest połączone z siecią OSU.
- Przez połączenie przepływa wystarczająca ilość ruchu (więcej informacji znajdziesz w sekcji dotyczącej progów ruchu).
- Wartość RSSI jest większa niż wymagany próg RSSI (patrz próg RSSI poniżej), a wybór sieci został przeprowadzony niedawno (domyślnie 10 minut, ale można go skonfigurować za pomocą nakładki
config_wifiConnectedHighRssiScanMinimumWindowSizeSec), a 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 większa niż -73 dBm w przypadku pasma 2,4 GHz skonfigurowanego z nakładką
config_wifi_framework_wifi_score_low_rssi_threshold_24GHzlub -70 dBm w przypadku pasm 5 GHz i 6 GHz skonfigurowanych z nakładkamiconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHziconfig_wifiFrameworkScoreLowRssiThreshold6ghz. - Ruch (wysyłany lub odbierany) jest większy niż 16 pakietów na sekundę (pps) skonfigurowanych za pomocą nakładki
config_wifiFrameworkMinPacketPerSecondActiveTraffic.
Gdy urządzenie jest połączone z siecią, a ekran jest włączony, połączony system oceny okresowo monitoruje jakość Wi-Fi, sprawdzając sygnały takie jak RSSI i liczbę przesłanych pakietów. Jeśli jakość Wi-Fi zostanie uznana za słabą (jak opisano 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 oceny, 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 przypadku dużej mobilności interwał wynosi 20 sekund w przypadku pierwszych 3 skanów (kontrolowanych przez config_wifiMovingPnoScanIntervalMillis), a 60 sekund (stały mnożnik 3) w przypadku kolejnych skanów.
Nominujący w sieci
Osoby nominujące sieci wyszukują 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_5GHziconfig_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:
- Wartość sieci zapisanej: 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 kandydata i przyznają mu punkty. Wynik dla funkcji ThroughputScorer (domyślnej funkcji oceniającej) jest obliczany na podstawie tych danych:
- 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_5GHziconfig_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_wifiFrameworkThroughputBonusNumeratoriconfig_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 przez czas, który można skonfigurować za pomocą nakładki
config_wifiFrameworkLastSelectionMinutes(przez ten czas 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_wifiFrameworkCurrentNetworkBonusMiniconfig_wifiFrameworkCurrentNetworkBonusPercent(dodatkowy bonus jest obliczany na podstawie procentu oceny opartej na RSSI i przepustowości, aż do konfigurowalnego minimum). - Sieć zabezpieczona ma wyższą ocenę niż sieć otwarta. Bonus jest konfigurowany za pomocą nakładki
config_wifiFrameworkSecureNetworkBonus. - Sieć bez pomiaru użycia danych (bezpłatna) ma wyższą ocenę niż sieć z pomiarem użycia danych (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 dostępu do internetu, otrzymuje ocenę 0, jeśli urządzenie jest połączone z inną siecią, która ma dostęp do internetu.
Domyślny bonus za zapisane w porównaniu z sugerowanymi i bez pomiaru w porównaniu z z pomiarem użycia danych (czyli domyślne wartości nakładki) tworzy ścisłą kolejność priorytetów dla zapisanych, sugerowanych, z pomiarem użycia danych i bez pomiaru:
- 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.
Platforma może mieć zainstalowanych kilku kandydatów do oceny, ale w danym momencie może być aktywny tylko jeden z nich. Pozostałe funkcje oceniające można wykorzystać w przypadku danych (do zbadania alternatywnych algorytmów). W Androidzie 11 domyślny moduł oceniający to ThroughputScorer.
Blokowanie identyfikatorów SSID i BSSID
Może blokować identyfikatory SSID lub BSSID, co oznacza, że nie będzie ich brać pod uwagę przy nawiązywaniu połączeń tymczasowych ani 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 błędów – dla każdego rodzaju błędu (listę rodzajó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. Ta wartość bazowa jest określana przez nakładki config_wifiBssidBlocklistMonitorBaseBlockDurationMs lub config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs w zależności od wskaźnika RSSI. Czas trwania rośnie wykładniczo aż do konfigurowalnej górnej granicy określonej przez config_wifiBssidBlocklistMonitorFailureStreakCap
nakładkę. Czas trwania wydłuża się, jeśli błędy występują nieprzerwanie w tym samym identyfikatorze BSSID. Czas trwania to czas trwania podstawowego zwiększony wykładniczo przez serię niepowodzeń. Na przykład seria niepowodzeń o długości 2 oznacza 4-krotny czas trwania podstawowego bloku.
Progi blokowania identyfikatora BSSID zależą od przyczyny niepowodzenia i można je dostosowywać 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. - Kod błędu uwierzytelniania nieprawidłowego hasła:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold - Kod błędu uwierzytelniania EAP w przypadku sieci EAP:
config_wifiBssidBlocklistMonitorEapFailureThreshold. - Odrzucenie powiązania, inne ogólne odrzucenia powiązania:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold. - Limit czasu powiązania:
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:
- Po przełączeniu Wi-Fi wszystkie identyfikatory BSSID zostaną usunięte z listy blokowania.
- Gdy użytkownik kliknie sieć w selektorze Wi-Fi, wszystkie identyfikatory BSSID wybranej przez niego sieci zostaną usunięte z listy zablokowanych.
- Po upływie czasu blokady (przekroczeniu limitu czasu) identyfikatory BSSID są usuwane z listy zablokowanych.
- Po ponownym uruchomieniu systemu wszystkie listy blokowania zostaną wyczyszczone.
- Gdy sieć zostanie usunięta, wszystkie identyfikatory BSSID powiązane z tą siecią zostaną usunięte z listy zablokowanych.
Warunki resetowania liczników niepowodzeń i serii:
- Po ponownym uruchomieniu systemu liczniki zostaną zresetowane dla wszystkich identyfikatorów BSSID.
- Po usunięciu sieci liczniki są resetowane w przypadku identyfikatorów BSSID powiązanych z tą siecią.
Gdy połączenie L2 zostanie nawiązane, liczniki są resetowane w przypadku tych kodów błędów:
REASON_AP_UNABLE_TO_HANDLE_NEW_STAREASON_WRONG_PASSWORDREASON_EAP_FAILUREREASON_ASSOCIATION_REJECTIONREASON_ASSOCIATION_TIMEOUTREASON_AUTHENTICATION_FAILUREREASON_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
Gdy weryfikacja sieci zakończy się powodzeniem, liczniki zostaną zresetowane w przypadku tego kodu błędu:
REASON_NETWORK_VALIDATION_FAILURE
Gdy obsługa administracyjna DHCP zakończy się powodzeniem, liczniki zostaną zresetowane 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 każdego typu w każdej sieci jest zwiększany, gdy wystąpią błędy połączenia tego typu.
Gdy liczba niepowodzeń określonego typu przekroczy próg, identyfikator SSID zostanie trwale lub tymczasowo zablokowany w zależności od konfiguracji. Konfiguracja każdego typu błędu jest zakodowana w WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS i podsumowana w tabeli 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 | Nie dotyczy | Na stałe |
DISABLED_NO_INTERNET_PERMANENT |
Domyślne ustawienie w przypadku niepowodzenia weryfikacji sieci | 1 | Nie dotyczy | Na stałe |
DISABLED_BY_WIFI_MANAGER |
Nieużywane i wycofane | 1 | Nie dotyczy | Na stałe |
DISABLED_BY_WRONG_PASSWORD |
Hasło jest nieprawidłowe, a sieć nigdy nie została połączona | 1 | Nie dotyczy | Na stałe |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
Błąd EAP, gdy karta SIM nie jest subskrybowana | 1 | Nie dotyczy | 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 | Nie dotyczy | Na stałe |
DISABLED_NETWORK_NOT_FOUND |
Klient nie znalazł w wynikach skanowania sieci, która pasuje do sieci, o którą poprosił system w celu nawiązania połączenia (w tym 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ć zostanie ponownie włączona, 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ć jest ponownie włączana, 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 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 wyboru połączenia użytkownika nie jest gorsza niż w momencie pierwotnego wyboru z marginesem błędu. Ten margines błędu można skonfigurować za pomocą nakładki
config_wifiEstimateRssiErrorMarginDb.
Wybór sieci użytkownika jest zachowywany 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 odłączeniem od starej. Proces łączenia przed rozłączeniem korzysta z tego samego algorytmu wyboru sieci co proces rozłączania przed łączeniem (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 połą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 konfigurowania tej funkcji przez producentów urządzeń znajdziesz w artykule Jednoczesne połączenie z siecią objętą ograniczeniami 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 zwykłym aplikacjom) 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, ale znacznie większą wagę przykłada się do jakości połączenia.
Dzieje się tak, ponieważ rzeczywiste bezpieczeństwo danych użytkownika jest zapewniane przez pełne szyfrowanie (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ą priorytet przed sugerowanymi bezpłatnymi sieciami, a zapisane sieci z pomiarem użycia danych mają priorytet przed sugerowanymi sieciami z pomiarem użycia danych.
Zapisane sieci mają wyższy priorytet niż sugerowane, ponieważ użytkownik dodał je do urządzenia ręcznie. 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. Oznacza to, że mogą 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ąć?
Możesz modyfikować decyzje dotyczące wyboru sieci, zmieniając nakładki bonusowe wymienione w poprzednich sekcjach. Zmiana wartości domyślnych nie jest jednak zalecana, ponieważ zostały one wybrane po dokładnym rozważeniu wielu przypadków użycia.