Na tej stronie opisujemy algorytmy i procedury używane w Androidzie 12 do wybierania i przełączania się między sieciami Wi-Fi. Android nieustannie ocenia jakość połączonej sieci i dostępnych sieci.
Cykl życia automatycznego połączenia
Opisujemy w nim, jak urządzenie z Androidem ocenia dostępne sieci Wi-Fi i z nimi się łączy.
Urządzenie wykrywa dostępne sieci w jednym z tych sposobów, w zależności od tego, czy ekran jest włączony, czy wyłączony.
- Ekran włączony (połączony): system podrzędny Androida do obsługi połączeń regularnie sprawdza, czy bieżące połączenie jest wystarczająco dobre, aby pominąć skanowanie (zgodnie z definicją w skanowaniu przy włączonym ekranie). Jeśli połączenie nie jest wystarczająco dobre, aby pominąć skanowanie, podsystem łączności uruchamia skanowanie w celu wykrycia dostępnych sieci. Skanowanie może być również wywoływane przez inne komponenty systemu, takie jak system lokalizacji lub aplikacja (w tym aplikacja Ustawienia).
- Ekran włączony (niepodłączony): okresowe skanowanie jest przeprowadzane przez podsystem łączności Androida zgodnie z wykładniczym harmonogramem. Moduł ocenia wszystkie otrzymane wyniki skanowania i próbuje wybrać najlepszą sieć do połączenia.
- Ekran wyłączony (niepodłączony): procesor hosta programuje oprogramowanie układowe za pomocą listy preferowanych sieci, korzystając z przesyłania preferowanych sieci (PNO), gdy tylko ekran się wyłączy. Oprogramowanie układowe budzi hosta, jeśli znajdzie którąś z preferowanych sieci. AOSP zakłada, że na urządzeniu jest obsługiwana usługa PNO.
Metody
WifiManager#allowAutojoinGlobal(boolean)
można użyć do wyłączenia automatycznych połączeń. To uprzywilejowany interfejs API, którego producenci urządzeń mogą używać w ograniczonych okolicznościach (np. w przypadku niemobilnego urządzenia skonfigurowanego w ograniczony sposób).Jeśli urządzenie jest połączone, a nakładka
config_wifi_framework_enable_associated_network_selection
jest ustawiona nafalse
, nie są wykonywane skany łączności, a ich wyniki nie powodują wyboru sieci. To ustawienie nie ma wpływu, gdy urządzenie jest odłączone, co oznacza, że skanowanie pod kątem łączności i wybór sieci nadal mają miejsce.Wyniki skanowania są oceniane.
Jeśli urządzenie jest połączone z siecią Wi-Fi, framework sprawdza, czy bieżąca sieć jest wystarczająco dobrym rozwiązaniem, aby pominąć wybór sieci.
Sieć jest wystarczająco dobra, aby pominąć wybór sieci, jeśli spełniony jest co najmniej jeden z tych wymagań:
- Od ostatniego wyboru sieci minęło mniej niż 10 sekund.
- Użytkownik niedawno ręcznie połączył się z siecią (czas „niedawno” można skonfigurować za pomocą nakładki
config_wifiSufficientDurationAfterUserSelectionMilliseconds
). - Urządzenie jest połączone z rejestracją online (OSU).
są spełnione wszystkie te wymagania:
- Indeks RSSI przekracza wymagany próg lub przez połączenie przepływa wystarczająca ilość danych (informacje o progach RSSI i ruchu znajdziesz w sekcji skanowanie przy włączonym ekranie).
- Sieć jest zweryfikowana (połączona z internetem) lub użytkownik zatwierdził jej użycie bez dostępu do internetu.
- Sieć jest bezpłatna.
Jeśli sieć jest wystarczająco dobra, aby pominąć wybór sieci, nie musisz podejmować żadnych dalszych działań.
Jeśli połączona sieć Wi-Fi nie jest wystarczająco dobra lub urządzenie nie jest połączone z siecią, framework wywołuje nominatory sieci, aby wygenerować listę sieci Wi-Fi kandydatów do połączenia na podstawie przefiltrowanych wyników skanowania. Nominanci sieci znajdują istniejące konfiguracje sieci Wi-Fi lub tworzą nowe konfiguracje dla sieci kandydatów.
Wyniki skanowania są filtrowane w celu usunięcia identyfikatorów BSSID, których identyfikator RSSI jest mniejszy niż identyfikator RSSI wpisu (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 zablokowane identyfikatory BSSID są odfiltrowywane. BSSID-y mogą być blokowane na podstawie powtarzających się niepowodzeń połączenia, częstych rozłączeń i wyraźnych próśb AP o niepodejmowanie prób skojarzenia przez określony czas (MBO-OCE). Blokowanie BSSID zostało opisane poniżej w sekcji Blokowanie SSID i BSSID.Gdy urządzenie porusza się szybko, wyniki skanowania są opcjonalnie dodatkowo filtrowane w celu usunięcia identyfikatorów BSSID, których sygnał RSSI zmienia się szybko (co oznacza, że nie poruszają się one razem z urządzeniem). Optymalizację można konfigurować za pomocą opcji
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 (zmiany RSSI w wynikach skanowania wystarczająco oddalone w czasie).
Framework uruchamia funkcję oceniania kandydatów, aby wygenerować wynik dla każdego identyfikatora zestawu usług (SSID). Identyfikatory SSID mogą zawierać wiele identyfikatorów podstawowych zestawów usług (BSSID) (wygenerowanych przez nominantów sieci). Kandydat z najwyższym wynikiem jest kandydatem zwycięskim.
Platforma wykonuje algorytm wyboru połączenia z użytkownikiem, który może spowodować, że nowy zwycięski kandydat to sieć wybrana przez użytkownika zamiast zwycięskiego kandydata z wyliczarki kandydatów.
Framework sprawdza, czy zwycięski kandydat pasuje do obecnie połączonej sieci. Aby dopasowanie zostało uznane za 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 roaming oparty na oprogramowaniu jest dostępny (w tym możliwość umieszczenia na czarnej liście adresów BSSID), wybrany kandydat i połączona sieć mają ten sam identyfikator SSID i ten sam typ zabezpieczeń.
Jeśli zwycięski kandydat pasuje do obecnie połączonej sieci, nie podejmujemy dalszych działań. 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 API żądania sieci Wi-Fi, który zastępuje system i tworzy sieć LAN bez dostępu do internetu. Wyjątek stanowią urządzenia obsługujące dwie równoległe stacje.
Ocena połączonej sieci
Platforma Android lub oprogramowanie sprzętowe okresowo ocenia jakość połączonej sieci. Z tej sekcji dowiesz się, jak oceniana jest sieć po podłączeniu, gdy ekran jest włączony lub wyłączony.
Ta ocena jest przeprowadzana dodatkowo do wyboru sieci, o którym mowa powyżej.
Ekran włączony
Platforma Android ocenia połączoną sieć w ten sposób:
Usługa Wi-Fi co 3 sekundy wysyła zapytanie o RSSI i statystyki dotyczące warstwy łącza (można je skonfigurować za pomocą nakładki
config_wifiPollRssiIntervalMilliseconds
).Jeśli dynamiczna regulacja interwału jest włączona za pomocą nakładki
config_wifiAdjustPollRssiIntervalEnabled
, interwał ankiety zmienia się dynamicznie w zależności od stanu mobilności urządzenia i RSSI.- Gdy urządzenie jest nieruchome , a wartość RSSI przekracza -68 dBm (skonfigurowana przez nakładki
config_wifiClientRssiMonitorThresholdDbm
iconfig_wifiClientRssiMonitorHysteresisDb
), interwał ankiety wydłuża się do 6 sekund (skonfigurowany przez nakładkęconfig_wifiPollRssiLongIntervalMilliseconds
). - Gdy urządzenie jest w ruchu lub wartość RSSI jest niższa niż -73 dBm (skonfigurowana przez nakładkę
config_wifiClientRssiMonitorThresholdDbm
), interwał ankiety jest ponownie zmniejszany do 3 sekund (skonfigurowany przez nakładkęconfig_wifiPollRssiIntervalMilliseconds
).
- Gdy urządzenie jest nieruchome , a wartość RSSI przekracza -68 dBm (skonfigurowana przez nakładki
Usługa Wi-Fi oblicza wynik połączenia na podstawie statystyk RSSI i 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
Framework nie inicjuje oceny w połączonej sieci, ale proces wyboru sieci może się mimo to rozpocząć, jeśli skanowanie zostało zainicjowane przez inne komponenty (np. usługi lokalizacyjne). Oprogramowanie ocenia jakość sieci. Jeśli jest ona niska, może się przełączyć na inną sieć lub (ostatecznie) odłączyć od sieci i obudzić hosta.
Skanowanie połączeń
Skanowanie jest wykonywane automatycznie w zależności od tego, czy ekran jest włączony, wyłączony i połączony z Wi-Fi, czy też wyłączony i nie połączony z Wi-Fi.
Ekran włączony
Gdy ekran jest włączony, framework uruchamia decyzje dotyczące skanowania w coraz dłuższych odstępach czasu. Intervaly decyzji skanowania są konfigurowane za pomocą nakładek config_wifiDisconnectedScanIntervalScheduleSec
, config_wifiConnectedScanIntervalScheduleSec
i config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec
(będących tablicami liczb całkowitych). Domyślnie skanowanie odbywa się z wydłużającymi się interwałami wynoszącymi 20, 40, 80 i 160 sekund, a kolejne skanowania mogą być wykonywane co 160 sekund (są to domyślne wartości tych nakładek).
Wykładnicze odstępy między skanami są resetowane i ponowicie uruchamiane co 20 sekund, gdy zmienia się stan ekranu, czyli gdy włącza się lub wyłącza.
(Android 13 lub nowszy) Jeśli w czasie działania wymagane są różne interwały skanowania, aplikacja z uprawnieniami OEM może wywołać interfejs API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule)
, aby dynamicznie ustawić harmonogram skanowania podczas włączonego ekranu.
Decyzja o wykonaniu lub pominięciu skanowania zależy od tego, czy obecne połączenie z internetem jest wystarczająco dobre do pominięcia skanowania. Połączenie jest wystarczająco dobre, aby pominąć skanowanie, jeśli spełnione jest którekolwiek z tych wymagań:
- Urządzenie jest połączone z rejestracją online (OSU).
- Przez połączenie przepływa wystarczająca ilość ruchu (patrz niżej, „Próg ruchu”).
- RSSI jest wyższy niż wymagany próg RSSI (patrz „Próg RSSI” poniżej), a wybór sieci został wykonany niedawno (domyślnie 10 minut, ale można to 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:
- RSSI jest wyższy niż -73 dBm w paśmie 2,4 GHz skonfigurowanym z nakładką
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
lub -70 dBm w pasmach 5 GHz i 6 GHz skonfigurowanych z nakładkamiconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHz
iconfig_wifiFrameworkScoreLowRssiThreshold6ghz
. - Ruch (przesyłanie lub odbieranie) przekracza 16 pakietów na sekundę (pps) skonfigurowanych za pomocą nakładki
config_wifiFrameworkMinPacketPerSecondActiveTraffic
.
Gdy urządzenie jest połączone, a ekran jest włączony. Połączony system punktacji okresowo sprawdza jakość Wi-Fi, analizując sygnały takie jak RSSI i liczbę przesyłanych pakietów. Jeśli jakość Wi-Fi zostanie uznana za niską (jak opisano poniżej) i urządzenie obsługuje dwie stacje jednocześnie, zostanie uruchomione skanowanie. Za pomocą nakładki config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
możesz skonfigurować próg wyniku, który uruchamia skanowanie. Za pomocą nakładki config_wifiLowConnectedScoreScanPeriodSeconds
możesz skonfigurować okres tych skanowań.
Wyłączony ekran i połączenie z Wi-Fi
Gdy ekran jest wyłączony, a urządzenie jest połączone z siecią Wi-Fi, oprogramowanie (Wi-Fi SoC) wykonuje skanowanie roamingu. Gdy ekran jest wyłączony, framework nie wykonuje żadnych skanowań.
Wyłączony ekran i brak połączenia z Wi-Fi (stan rozłączony)
Gdy ekran jest wyłączony, a Wi-Fi jest odłączone, oprogramowanie wykonuje skanowanie PNO w celu znalezienia identyfikatorów SSID. Framework konfiguruje oprogramowanie sprzętowe za pomocą listy identyfikatorów SSID, które mają być skanowane, oraz listy kanałów, na których ma być przeprowadzane skanowanie. Jeśli zostanie znaleziony skonfigurowany identyfikator SSID, oprogramowanie uruchomi framework.
Framework konfiguruje też interwał, w jakim oprogramowanie sprzętowe ma wykonywać skanowanie PNO, używając stanu mobilności urządzenia do wybierania różnych interwałów skanowania.
W stanie niskiej mobilności (urządzenie jest nieruchome) interwał wynosi 60 sekund w przypadku pierwszych 3 skanowań (kontrolowanych przez nakładkę config_wifiStationaryPnoScanIntervalMillis
) i 180 sekund (3-krotny mnożnik nakładki) w przypadku kolejnych skanowań. W stanie wysokiej mobilności interwał wynosi 20 sekund w przypadku pierwszych 3 skanowań (kontrolowanych przez nakładkę config_wifiMovingPnoScanIntervalMillis
) i 60 sekund (3-krotny mnożnik nakładki) w przypadku kolejnych skanowań.
Nominanci sieci
Nominanci sieci znajdują lub tworzą konfiguracje (WifiConfiguration
) dla sieci, które:
- Dostępny (na podstawie wyników skanowania) lub połączona sieć (czasami brak w niestabilnych wynikach skanowania).
- mieć minimalny identyfikator RSSI; Minimalna wartość RSSI to -80 dBm w zakresie 2,4 GHz i -77 dBm w zakresie 5 GHz i 6 GHz.Wartość tę można konfigurować 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 zablokowany, na przykład z powodu wcześniejszych niepowodzeń połączenia.
- Sieć nie wskazuje, że jest nieprzydatna (np. za pomocą MBO lub OCE).
- Może być powiązany z korzystaniem z danych logowania dostępnych na urządzeniu.
Używane są następujące sieci nominujące:
- Zapisany mnożnik sieci: sprawdza wszystkie zapisane sieci (w tym zapisane subskrypcje Passpoint).
- Nominator sugerowanej sieci: ocenia wszystkie sieci podane przez aplikacje za pomocą interfejsu Suggestion API (w tym sugerowane subskrypcje Passpoint).
Punktacja kandydatów
Oceniacze oceniają kandydatów i przyznają im punkty. Wynik ThroughputScorer
(domyślny kalkulator wyników) jest określany na podstawie tych czynników:
- Podstawowa ocena jest obliczana na podstawie wartości RSSI, która jest ograniczona do -73 dBm w pasmie 2,4 GHz lub -70 dBm w pasmach 5 GHz i 6 GHz (skonfigurowanych za pomocą nakładek
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_low_rssi_threshold_5GHz
iconfig_wifiFrameworkScoreLowRssiThreshold6ghz
). - Zwiększenie 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. Wzrost wyniku można konfigurować za pomocą nakładek
config_wifiFrameworkThroughputBonusNumerator
iconfig_wifiFrameworkThroughputBonusDenominator
. Jest on ograniczony do wartości maksymalnej określonej za pomocą nakładkiconfig_wifiFrameworkThroughputBonusLimit
. - Sieć kandydata, która została niedawno wybrana przez użytkownika lub aplikację, otrzymuje duży wzrost wyniku na czas konfigurowany za pomocą nakładki
config_wifiFrameworkLastSelectionMinutes
(przez ten czas sieć jest wybierana zamiast sieci niewybranych przez użytkownika). - Kandydat, który pasuje do bieżącej sieci, otrzymuje bonus do wyniku skonfigurowany przez nakładki
config_wifiFrameworkCurrentNetworkBonusMin
iconfig_wifiFrameworkCurrentNetworkBonusPercent
(otrzymuje dodatkowy bonus na podstawie odsetka wyniku RSSI i wyniku opartego na przepustowości, aż do konfigurowalnego minimum). - Sieć bezpieczna ma wyższą ocenę niż sieć otwarta. Bonus jest konfigurowany za pomocą nakładki
config_wifiFrameworkSecureNetworkBonus
. - Sieć bez pomiaru (bezpłatna) otrzymuje wyższą ocenę niż sieć z pomiarem (płatna).
Bonus jest konfigurowany za pomocą nakładki
config_wifiFrameworkUnmeteredNetworkBonus
. - Sieć zapisana ma wyższą ocenę niż sieć sugerowana za pomocą interfejsu Suggestion API. Bonus jest konfigurowany za pomocą nakładki
config_wifiFrameworkSavedNetworkBonus
. - Sieci niezaufalane (które można poprosić o interfejs Suggestion API) mają niższą ocenę niż inne sieci.
- Sieć, która została wcześniej wykryta jako niemająca dostępu do 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 reklamy zapisane i zaproponowane oraz za reklamy z opłatą i bez opłaty (czyli domyślne wartości nakładek) powoduje ścisłą kolejność priorytetów w przypadku reklam zapisanych, zaproponowanych, z opłatą i bez opłaty:
- Zapisane sieci bez limitu danych
- Sugerowane sieci bez pomiaru
- Zapisane sieci z pomiarem użycia danych
- Sugerowane sieci z pomiarem użycia danych
Oznacza to, że zapisana sieć bezpłatna jest zawsze wybierana przed zapisaną siecią płatną. Bonus za ostatnio wybraną (przez użytkownika lub aplikację) liczbę punktów może zastąpić ścisłe priorytety.
Framework może mieć zainstalowanych kilku kandydatów na oceniających, ale w danym momencie może być aktywny tylko jeden z nich. Inne algorytmy punktacji można stosować do danych (aby badać alternatywne algorytmy). W Androidzie 11 domyślnym punktem jest ThroughputScorer
.
Blokowanie identyfikatorów SSID i BSSID
Platforma może blokować identyfikatory SSID lub BSSID, czyli nie uwzględniać ich w przypadku połączeń tymczasowo lub na stałe.
Blokowanie BSSID
Blokowanie BSSID działa na podstawie 2 liczników błędów: ciągłego i ciągłego z licznikiem, w przypadku każdego typu błędu (poniżej znajdziesz listę typów błędów). Gdy wystąpi błąd:
- Wzrasta licznik odpowiadający danemu rodzajowi błędu.
- Jeśli zostanie osiągnięty próg błędu danego typu:
- BSSID jest zablokowany.
- Licznik ciągów niepowodzeń jest zwiększany.
Czas blokowania adresu BSSID zaczyna się od (możliwej do skonfigurowania) wartości podstawowej (określanej przez nakładki config_wifiBssidBlocklistMonitorBaseBlockDurationMs
lub config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
w zależności od RSSI) i rośnie wykładniczo do możliwej do skonfigurowania wartości górnej (określanej przez nakładkę config_wifiBssidBlocklistMonitorFailureStreakCap
). Czas trwania wzrasta, jeśli błędy występują nieprzerwanie na tym samym BSSID. Czas trwania jest podstawową długością wykładniczo zwiększoną o liczbę niepowodzeń, czyli 2 niepowodzenia oznaczają 4-krotny czas blokady.
Próg blokowania BSSID zależy od przyczyny niepowodzenia i można go dostosować za pomocą nakładek:
- AP odrzuca powiązanie, używając kodu MBO/OCE Nie można obsłużyć nowego STA:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
. - Nie udało się zweryfikować połączenia z internetem przez tę sieć:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
. - Kod błędu nieprawidłowego uwierzytelniania hasłem:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold
. - Kod błędu uwierzytelniania EAP dla 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ę skonfigurować DHCP:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold
. - Nieprawidłowe rozłączenie, urządzenie zostało odłączone od sieci w bardzo krótkim czasie po połączeniu:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold
. Okno czasowe można skonfigurować za pomocą opcjiconfig_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs
.
Warunki czyszczenia listy zablokowanych identyfikatorów BSSID
BSSID jest usuwany z listy zablokowanych, gdy:
- Wi-Fi jest włączone: wszystkie identyfikatory BSSID są usuwane z listy zablokowanych.
- Użytkownik klika sieć w selektorze Wi-Fi: wszystkie adresy BSSID wybranej sieci są usuwane z listy zablokowanych.
- Limit czasu: adresy BSSID są usuwane z listy zablokowanych po upływie czasu blokady.
- Uruchom ponownie: wszystkie listy blokowania zostaną usunięte.
- Sieć została usunięta: wszystkie identyfikatory BSSID powiązane z tą siecią zostaną usunięte z listy zablokowanych.
Warunki resetowania liczników porażek i serii:
- Ponowne uruchamianie: resetowanie wszystkich adresów BSSID.
- Usunięcie sieci: zresetuj identyfikatory BSSID powiązane z tą siecią.
Udane połączenie L2: zresetuj te kody 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 usunięte tylko wtedy, gdy ostatnie połączenie urządzenia z tym BSSID miało miejsce ponad 3 godziny temu)REASON_NONLOCAL_DISCONNECT_CONNECTING
Pomyślna weryfikacja sieci: powoduje zresetowanie ustawień dla podanego kodu błędu.
REASON_NETWORK_VALIDATION_FAILURE
Pomyślne wdrożenie DHCP: resetuje kod błędu.
REASON_DHCP_FAILURE
Blokowanie identyfikatorów SSID
Blokowanie identyfikatora SSID działa podobnie jak blokowanie identyfikatora BSSID. W przypadku wystąpienia błędów połączenia (tego typu) licznik błędów dla danego typu błędu i konkretnej sieci jest zwiększany.
Gdy liczba błędów danego typu przekroczy określony próg, identyfikator SSID zostanie trwale lub tymczasowo zablokowany w zależności od konfiguracji. Konfiguracja dla 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 niepowodzeń w połączeniu z siecią. Po 5 nieudanych próbach połączenia z siecią czas wyłączenia wydłuża się po każdym kolejnym niepowodzeniu o 50%. Na przykład sieć z 5 kolejnymi niepowodzeniami jest wyłączana na 5 minut, a po 6 niepowodzeniach – na 10 minut, po 7 niepowodzeniach – 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ę skonfigurować DHCP | 5 | 5 minut | Tymczasowe |
DISABLED_NO_INTERNET_TEMPORARY |
Nie udało się zweryfikować sieci, ale użytkownik chce nadal z nią współpracować | 1 | 10 minut, | Tymczasowe |
DISABLED_AUTHENTICATION_NO_CREDENTIALS |
W przypadku abonenta brakuje danych logowania do połączenia z siecią | 1 | NA | Stała |
DISABLED_NO_INTERNET_PERMANENT |
Domyślna wartość w przypadku niepowodzenia weryfikacji sieci | 1 | NA | Stała |
DISABLED_BY_WIFI_MANAGER |
Nieużywane i nieobsługiwane | 1 | NA | Stała |
DISABLED_BY_WRONG_PASSWORD |
Hasło jest nieprawidłowe, a ta sieć nigdy nie była połączona z | 1 | NA | Stała |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
Błąd EAP, gdy karta SIM nie jest subskrybowana | 1 | NA | Stała |
DISABLED_ASSOCIATION_REJECTION |
Odrzucenia powiązania | 5 | 5 minut | Tymczasowe |
DISABLED_AUTHENTICATION_FAILURE |
inne błędy uwierzytelniania (czyli nie błędne hasło ani błąd EAP); | 5 | 5 minut | Tymczasowe |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR |
Błąd EAP (prywatny) po stronie dostawcy. | 1 | NA | Stała |
DISABLED_NETWORK_NOT_FOUND |
W wynikach skanowania nie udało się znaleźć sieci, która odpowiadałaby sieci określonej przez ramy połączenia (w tym możliwości sieci). | 2 | 5 minut | Tymczasowe |
DISABLED_CONSECUTIVE_FAILURES |
Sieć nie udało się połączyć co najmniej 5 razy z rzędu. Typy błędów obejmują, ale nie ograniczają się do typów wymienionych w tej tabeli. |
5 | 5 minut | Tymczasowe |
Tymczasowo wyłączona sieć zostanie ponownie włączona, gdy:
- Upłynął okres wyłączenia.
- Użytkownik ręcznie wybiera sieć, z którą chce się połączyć.
- Użytkownik włącza Wi-Fi.
- System jest ponownie uruchamiany.
- sieć została wyłączona przy bardzo niskim RSSI, ale została później ponownie wykryta przy umiarkowanym lub wyższym RSSI;
Sieć trwale wyłączona jest ponownie włączana, gdy:
- Użytkownik ręcznie wybiera sieć, z którą chce się połączyć.
Liczniki niepowodzeń sieci są resetowane, gdy:
- Sieć została 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 jest ponownie uruchamiany.
Podsumowania statystyk
Karty wyników, wprowadzone w Androidzie 10, rejestrują na urządzeniu statystyki dotyczące adresów BSSID. Karty wyników są przechowywane za pomocą usługi IpMemoryStore
.
W Androidzie 11 do wyboru sieci nie są używane karty wyników.
Wybór użytkownika
Android ma algorytm wyboru opcji łączenia się z użytkownikiem, który umożliwia preferowanie sieci Wi-Fi, z którymi użytkownik łączy się w wyraźny sposób, np. z siecią domową. Użytkownicy mogą preferować takie sieci od sieci publicznych, nawet jeśli ich wydajność jest niższa, ponieważ zapewniają one dodatkowe usługi, takie jak możliwość sterowania urządzeniami domowymi.
Preferencje użytkownika dotyczące sieci są rejestrowane poprzez oznaczenie wszystkich widocznych konfiguracji Wi-Fi i ich siły sygnału w momencie wyboru sieci przez użytkownika. Jeśli podczas procesu automatycznego wyboru wybrana zostanie jedna z oznaczonych konfiguracji sieci Wi-Fi, a dostępna będzie sieć wybrana przez użytkownika, algorytm wyboru opcji łączenia użyje wybranej przez użytkownika sieci, jeśli spełnione są te warunki:
- Sieć wybrana przez użytkownika do nawiązywania połączeń miała dostęp do Internetu podczas ostatniego użycia
- Wybrany przez użytkownika punkt połączenia ma siłę sygnału, która nie jest gorsza niż w przypadku pierwotnego wyboru z dodatkiem marginesu błędu. Margines błędu można skonfigurować za pomocą nakładki
config_wifiEstimateRssiErrorMarginDb
.
Sieć wybrana przez użytkownika pozostaje po ponownym uruchomieniu. Opcja połączenia przez użytkownika działa w przypadku zapisanych sieci, sieci Passpoint i sugestii sieci.
Podwójne równoczesne stacje
W tej sekcji opisano 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ą, zanim rozłączy się ze starą. Proces „make-before-break” używa tego samego algorytmu wyboru sieci co proces przełączania sieci „break-before-make” (czyli gdy urządzenie odłącza się od starej sieci, zanim połączy się z nową). Jeśli algorytm wyboru sieci wybierze sieć, której nie można przełączyć za pomocą funkcji make-before-break, urządzenie automatycznie przełączy się na funkcję break-before-make.
jednoczesne połączenie z internetem i z siecią z ograniczonym dostępem.
Jeśli włączona jest funkcja jednoczesnej łączności z siecią Wi-Fi z ograniczonym dostępem i internetem, urządzenie może łączyć się z drugą siecią Wi-Fi z ograniczonym dostępem, która jest dostępna tylko dla wybranych aplikacji skonfigurowanych przez producenta urządzenia. Instrukcje dla producentów urządzeń dotyczące konfiguracji tej funkcji znajdziesz w sekcji Równoczesne połączenie z internetem i z siecią ograniczonej dostępności.
Gdy algorytm wyboru sieci wykryje wyniki skanowania pasujące do sugestii OEM dotyczącej sieci płatnej lub prywatnej, automatycznie połączy się z nią jako z drugą siecią. Wybór sieci podstawowej Wi-Fi (która zapewnia połączenie z internetem dla zwykłych aplikacji) odbywa się normalnie równolegle.
Najczęstsze pytania
Czy bezpieczne sieci mają zawsze wyższy priorytet niż otwarte sieci?
Nie. Zapisane i sugerowane oraz z pomiarem i bez pomiaru to główne kategorie, w których sieci są oceniane. W każdej kategorii sieci zabezpieczone mają nieco wyższy priorytet niż sieci otwarte, ale znacznie większą wagę ma jakość połączenia.
Dzieje się tak, ponieważ rzeczywiste bezpieczeństwo danych użytkownika zapewnia szyfrowanie end-to-end (na przykład TLS). Bezpieczne sieci szyfrują tylko pierwszy etap komunikacji, a nawet w przypadku sieci z kluczami udostępnionymi z góry nie zapewniają dużej prywatności.
Dlaczego zapisane sieci mają wyższy priorytet niż sugerowane sieci?
Zapisane sieci bezpłatne (bez limitu) mają wyższy priorytet niż sugerowane sieci bezpłatne, 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 sieci, ponieważ są to sieci dodane przez użytkownika na urządzeniu. Oznacza to, że w miarę możliwości preferuje się połączenie z tymi sieciami.
Użytkownicy mogą wyłączyć automatyczne łączenie się z poszczególnymi zapisanymi sieciami, czyli wskazać, że te sieci mają być używane tylko ręcznie, a nie automatycznie przez urządzenie.
Czy mogę zmienić ścisłą kolejność priorytetów lub całkowicie ją usunąć?
Producent urządzenia może modyfikować decyzje dotyczące wyboru sieci, zmieniając nakładki bonusowe wymienione w powyżej wymienionych sekcjach. Nie zalecamy jednak zmiany wartości domyślnych, ponieważ zostały one wybrane po dokładnym przeanalizowaniu wielu przypadków użycia.