Wybór sieci Wi-Fi w systemie Android

Na tej stronie opisano algorytmy i procedury stosowane w systemie Android 12 do wybierania i przełączania sieci Wi-Fi. Android na bieżąco ocenia jakość podłączonej sieci i ocenia jakość dostępnych sieci.

Życie automatycznego połączenia

Opisuje proces, w jaki urządzenie z Androidem ocenia dostępne sieci Wi-Fi i łączy się z nimi.

  1. Urządzenie skanuje dostępne sieci na jeden z poniższych sposobów, w zależności od tego, czy ekran jest włączony, czy wyłączony.

    • Ekran włączony (połączony): Podsystem łączności systemu Android regularnie ocenia, czy bieżące połączenie jest wystarczająco dobre, aby pominąć skanowanie (zgodnie z definicją w przypadku skanów na ekranie ). Jeśli połączenie nie jest wystarczająco dobre, aby pominąć skanowanie, podsystem łączności uruchamia skanowanie w celu wykrycia dostępnych sieci. Skanowania te mogą być również uruchamiane przez inne składniki systemu, takie jak system lokalizacji lub aplikacja (w tym aplikacja Ustawienia).
    • Ekran włączony (odłączony): podsystem łączności systemu Android przeprowadza okresowe skanowanie 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 z listą preferowanych sieci przy użyciu skanowania preferowanego odciążania sieci (PNO), gdy tylko ekran zgaśnie. Oprogramowanie układowe budzi hosta, jeśli znajdzie którąkolwiek z preferowanych sieci. AOSP zakłada, że ​​urządzenie obsługuje PNO.

    Aby wyłączyć automatyczne połączenia, można użyć metody WifiManager#allowAutojoinGlobal(boolean) . Jest to uprzywilejowany interfejs API, z którego mogą korzystać producenci urządzeń w ograniczonych okolicznościach (na przykład w przypadku wstępnie skonfigurowanego urządzenia innego niż mobilne).

    Jeśli urządzenie jest podłączone, a nakładka config_wifi_framework_enable_associated_network_selection jest ustawiona na false , nie są wykonywane żadne skanowania łączności, a wyniki skanowania nie powodują wybrania sieci. To ustawienie nie ma wpływu, gdy urządzenie jest odłączone, co oznacza, że ​​nadal przeprowadzane jest skanowanie połączenia i wybór sieci.

  2. Wyniki skanowania są oceniane.

    • Jeśli urządzenie jest podłączone do sieci Wi-Fi, framework ocenia, czy bieżąca sieć jest wystarczająco dobra, aby pominąć wybór sieci .

      Sieć definiuje się jako wystarczająco dobrą, aby pominąć wybór sieci, jeśli spełniony jest którykolwiek z poniższych wymagań:

      • Od ostatniego wyboru sieci minęło mniej niż 10 sekund.
      • Użytkownik niedawno ręcznie połączył się z siecią (gdzie ostatnio można to skonfigurować za pomocą nakładki config_wifiSufficientDurationAfterUserSelectionMilliseconds ).
      • Urządzenie jest połączone z połączeniem rejestracji online (OSU).
      • Spełnione są wszystkie poniższe wymagania:

        • Wartość RSSI przekracza wymagany próg RSSI lub przez połączenie przepływa wystarczający ruch (patrz skanowanie na ekranie pod kątem RSSI i progów ruchu).
        • Sieć została sprawdzona (połączona z Internetem) lub zatwierdzona przez użytkownika do użytku bez dostępu do Internetu.
        • Sieć nie jest licznikowana.
    • Jeśli sieć jest wystarczająco dobra, aby pominąć wybór sieci , nie są podejmowane żadne dalsze działania.

    • Jeśli podłączona sieć Wi-Fi nie jest wystarczająco dobra lub jeśli urządzenie nie jest podłączone do sieci, platforma wywołuje nominatory sieci w celu wygenerowania listy kandydatów do sieci Wi-Fi, z którymi można się połączyć na podstawie przefiltrowanych wyników skanowania. Nominatorzy 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óre mają RSSI poniżej wpisu RSSI (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_5GHz i config_wifiFrameworkScoreEntryRssiThreshold6ghz ). Dodatkowo filtrowane są zablokowane identyfikatory BSSID. Identyfikatory BSSID można blokować w oparciu o powtarzające się awarie połączeń, częste rozłączenia i wyraźne żądania z punktu dostępowego, aby nie podejmować prób skojarzenia przez określony czas (MBO-OCE). Blokowanie BSSID opisano poniżej w Blokowanie SSID i BSSID .

    • Gdy urządzenie szybko się porusza, wyniki skanowania są opcjonalnie dodatkowo filtrowane w celu usunięcia identyfikatorów BSSID, których RSSI szybko się zmienia (wskazuje, że nie poruszają się one wraz z urządzeniem). Tę optymalizację można skonfigurować za pomocą nakładek config_wifiHighMovementNetworkSelectionOptimizationEnabled (włączanie/wyłączanie optymalizacji) oraz nakładek config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs i config_wifiHighMovementNetworkSelectionOptimizationRssiDelta , które konfigurują wymagania dotyczące stabilności wyników skanowania (zmiana RSSI w wynikach skanowania odpowiednio oddzielona w czasie).

  3. Struktura uruchamia kandydata oceniającego w celu wygenerowania wyniku dla każdego kandydata na identyfikator zestawu usług (SSID). Kandydaci na SSID mogą obejmować wiele kandydatów na podstawowy identyfikator zestawu usług (BSSID) (generowanych przez nominatory sieci). Kandydat z najwyższym wynikiem zostaje zwycięzcą .

  4. Struktura wykonuje algorytm wyboru połączenia użytkownika , który może uczynić sieć wybraną przez użytkownika nowym zwycięskim kandydatem zamiast korzystać ze zwycięskiego kandydata spośród kandydata na punktację.

  5. Struktura określa, czy zwycięski kandydat pasuje do aktualnie podłączonej sieci. Aby można było uznać za dopasowanie, musi zostać spełniony jeden z poniższych warunków:

    • Zwycięski kandydat i połączona sieć Wi-Fi mają ten sam identyfikator BSSID.
    • Jeśli dostępna jest roaming oprogramowania sprzętowego (w tym możliwość czarnej listy BSSID), zwycięski kandydat i podłączona sieć mają ten sam identyfikator SSID i typ zabezpieczeń.

    Jeśli zwycięski kandydat pasuje do aktualnie podłączonej sieci, nie są podejmowane żadne dalsze działania. Jeśli zwycięski kandydat nie pasuje do sieci, urządzenie zostanie powiązane ze zwycięskim kandydatem.

Należy pamiętać, że automatyczne połączenie sieciowe jest wyłączone, gdy aplikacja korzysta z interfejsu API żądania sieci Wi-Fi , który zastępuje system i tworzy sieć LAN bez Internetu, z wyjątkiem urządzeń obsługujących dwie równoczesne stacje.

Ocena podłączonej sieci

Struktura lub oprogramowanie układowe Androida okresowo ocenia jakość podłączonej sieci. W tej sekcji opisano, w jaki sposób podłączona sieć jest oceniana, gdy ekran jest włączony lub wyłączony.

Ocena ta jest wykonywana w uzupełnieniu do wyboru sieci omówionego powyżej.

Na ekranie

Framework Androida ocenia podłączoną sieć w następujący sposób:

  1. Usługa Wi-Fi odpytuje RSSI i statystyki warstwy łącza co 3 sekundy (można to skonfigurować za pomocą nakładki config_wifiPollRssiIntervalMilliseconds ).

    Jeśli włączona jest dynamiczna regulacja interwałów przy użyciu nakładki config_wifiAdjustPollRssiIntervalEnabled , interwał odpytywania zmienia się dynamicznie w zależności od stanu mobilności urządzenia i RSSI.

    • Interwał odpytywania jest wydłużany do 6 sekund (konfigurowany przez nakładkę config_wifiPollRssiLongIntervalMilliseconds ), gdy urządzenie jest nieruchome , a RSSI przekracza -68 dBm (skonfigurowany przez nakładki config_wifiClientRssiMonitorThresholdDbm i config_wifiClientRssiMonitorHysteresisDb ).
    • Interwał odpytywania jest zmniejszany z powrotem do 3 sekund (konfigurowany przez nakładkę config_wifiPollRssiIntervalMilliseconds ), gdy urządzenie jest niestacjonarne lub RSSI jest poniżej -73 dBm (skonfigurowany przez nakładkę config_wifiClientRssiMonitorThresholdDbm ).
  2. Usługa Wi-Fi oblicza wynik połączenia na podstawie RSSI i statystyk warstwy łącza.

  3. Usługa Wi-Fi przekazuje wynik do usługi łączności, która na podstawie wyniku określa, czy połączyć się z siecią Wi-Fi, czy z innym dostępnym typem sieci, np. siecią komórkową.

Wyłaczony ekran

Struktura nie inicjuje oceny w podłączonej sieci, ale proces wyboru sieci może nadal wystąpić, jeśli skanowanie zostanie zainicjowane przez inne komponenty (na przykład usługi lokalizacyjne). Oprogramowanie sprzętowe ocenia jakość sieci i jeśli jakość sieci jest zła, oprogramowanie sprzętowe może przemieszczać się lub (ostatecznie) odłączyć się od sieci i obudzić hosta.

Skanowanie łączności

Skanowania są wykonywane automatycznie w zależności od tego, czy urządzenie ma włączony ekran, wyłączony ekran i połączenie z Wi-Fi, czy też ma wyłączony ekran i nie jest połączone z Wi-Fi.

Na ekranie

Struktura wyzwala decyzje dotyczące skanowania w rosnących odstępach czasu, gdy ekran jest włączony. 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 skany odbywają się z wykładniczymi odstępami czasu wynoszącymi 20, 40, 80 i 160 sekund, a kolejne skany mogą być wykonywane w odstępach 160 sekund (są to domyślne wartości powyższych nakładek).

Wykładnicze interwały skanowania wycofywania są resetowane i uruchamiane ponownie po 20 sekundach za każdym razem, gdy zmienia się stan ekranu, to znaczy gdy ekran jest włączany lub wyłączany.

(Android 13 lub nowszy) Jeśli w czasie wykonywania potrzebne są różne interwały skanowania, uprzywilejowana aplikacja OEM może wywołać interfejs API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) , aby dynamicznie ustawić harmonogram skanowania na ekranie.

Decyzja o wykonaniu lub pominięciu skanowania opiera się na tym, czy bieżące połączenie sieciowe jest wystarczająco dobre, aby pominąć skanowanie . Połączenie jest na tyle dobre, że można pominąć skanowanie, jeśli spełniony jest którykolwiek z poniższych wymagań:

  • Urządzenie jest połączone z połączeniem rejestracji online (OSU).
  • Przez połączenie przepływa wystarczający ruch (patrz progi ruchu poniżej).
  • Wartość RSSI przekracza wymagany próg RSSI (patrz progi RSSI poniżej), a niedawno przeprowadzono wybór sieci (domyślnie 10 minut, ale można go skonfigurować za pomocą nakładki config_wifiConnectedHighRssiScanMinimumWindowSizeSec ) i albo sieć została sprawdzona (połączona z Internetem), albo użytkownik -zatwierdzony do użytku bez dostępu do Internetu.

Progi RSSI i ruchu to:

  • RSSI wynosi powyżej -73 dBm dla pasma 2,4 GHz, skonfigurowanego z nakładką config_wifi_framework_wifi_score_low_rssi_threshold_24GHz lub -70 dBm dla pasm 5 GHz i 6 GHz, skonfigurowanego z config_wifi_framework_wifi_score_low_rssi_threshold_5GHz i config_wifiFrameworkScoreLowRssiThreshold6ghz nakładki.
  • Ruch (nadawany lub odbierany) przekracza 16 pakietów na sekundę (pps) skonfigurowany za pomocą nakładki config_wifiFrameworkMinPacketPerSecondActiveTraffic .

Gdy urządzenie jest podłączone, a ekran jest włączony. Podłączony rejestrator okresowo monitoruje jakość Wi-Fi, sprawdzając sygnały, takie jak RSSI i liczbę przesłanych pakietów. Jeśli jakość Wi-Fi zostanie określona jako zła (jak określono poniżej), a urządzenie obsługuje dwie równoczesne stacje, zostanie uruchomione skanowanie. Nakładki config_wifiLowConnectedScoreThresholdToTriggerScanForMbb można użyć do skonfigurowania progu wyniku wyzwalającego skanowanie. Nakładki config_wifiLowConnectedScoreScanPeriodSeconds można użyć do skonfigurowania okresu tych skanowań.

Ekran wyłączony i podłączony do Wi-Fi

Gdy ekran jest wyłączony, a urządzenie jest podłączone do sieci Wi-Fi, oprogramowanie sprzętowe (Wi-Fi SoC) przeprowadza skanowanie w zakresie roamingu. Struktura nie wykonuje żadnych skanów, gdy ekran jest wyłączony.

Ekran wyłączony i brak połączenia z Wi-Fi (stan rozłączenia)

Gdy ekran jest wyłączony, a Wi-Fi jest odłączone, oprogramowanie sprzętowe wykonuje skanowanie PNO w poszukiwaniu identyfikatorów SSID. Struktura konfiguruje oprogramowanie sprzętowe z listą identyfikatorów SSID do skanowania i listą kanałów do skanowania. Jeśli zostanie znaleziony skonfigurowany identyfikator SSID, oprogramowanie sprzętowe budzi platformę.

Struktura konfiguruje również częstotliwość, z jaką oprogramowanie sprzętowe ma wykonywać skanowanie PNO, wykorzystując stan mobilności urządzenia do wybierania różnych interwałów skanowania. W stanie niskiej mobilności (urządzenie jest nieruchome) odstęp wynosi 60 sekund dla pierwszych trzech skanów (kontrolowanych przez nakładkę config_wifiStationaryPnoScanIntervalMillis ) i 180 sekund (stały mnożnik 3x nakładki) dla kolejnych skanów. W stanie wysokiej mobilności interwał wynosi 20 sekund dla pierwszych trzech skanów (kontrolowanych przez nakładkę config_wifiMovingPnoScanIntervalMillis ) i 60 sekund (stały 3-krotny mnożnik nakładki) dla kolejnych skanów.

Nominatorzy sieci

Nominatory sieci znajdują lub tworzą konfiguracje ( WifiConfiguration ) dla sieci, które są:

  • Aktualnie dostępna (na podstawie wyników skanowania) lub aktualnie podłączona sieć (której czasami brakuje w niestabilnych wynikach skanowania).
  • Mają minimalny RSSI. Minimalny RSSI to -80 dBm dla pasma 2,4 GHz i -77 dBm dla pasm 5 GHz i 6 GHz, konfigurowalne za pomocą config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz i config_wifiFrameworkScoreEntryRssiThreshold6ghz z nakładkami.
  • Nie jest blokowany np. z powodu wcześniejszych awarii połączenia.
  • Sieć nie wskazuje, że jest bezużyteczna (na przykład przy użyciu MBO/OCE).
  • Można powiązać z użyciem poświadczeń dostępnych na urządzeniu.

Stosowane są następujące nominatory sieci:

  • Nominator zapisanej sieci: ocenia wszystkie zapisane sieci (w tym zapisane subskrypcje Passpoint).
  • Sugerowany nominator sieci: ocenia wszystkie sieci udostępniane przez aplikacje korzystające z interfejsu Suggestion API (w tym sugerowane subskrypcje Passpoint).
  • Zewnętrznie oceniany nominator sieci: mechanizm OEM zapewniający urządzeniu opcje łączności sieciowej. Aby uzyskać więcej informacji, zobacz Zewnętrzny dostawca oceny sieci .

Kandydaci na strzelców

Osoby oceniające kandydatów oceniają i przyznają punkty każdemu kandydatowi. Wynik dla ThroughputScorer (domyślnego strzelca) opiera się na następujących kryteriach:

  • Wynik podstawowy jest obliczany na podstawie RSSI, gdzie RSSI jest ograniczone do -73 dBm dla pasma 2,4 GHz lub -70 dBm dla pasm 5 GHz i 6 GHz (skonfigurowane za pomocą config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , config_wifi_framework_wifi_score_low_rssi_threshold_5GHz i config_wifiFrameworkScoreLowRssiThreshold6ghz 6ghz nakładki).
  • Zwiększenie wyniku jest obliczane na podstawie szacunkowej 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. Zwiększenie wyniku można skonfigurować za pomocą nakładek config_wifiFrameworkThroughputBonusNumerator i config_wifiFrameworkThroughputBonusDenominator i jest ograniczone do maksymalnej wartości określonej za pomocą nakładki config_wifiFrameworkThroughputBonusLimit .
  • Sieć kandydująca, która została niedawno wybrana przez użytkownika lub aplikację, uzyskuje duży wzrost wyniku na czas konfigurowany za pomocą nakładki config_wifiFrameworkLastSelectionMinutes (w tym czasie mamy pewność, że sieć zostanie wybrana spośród sieci niewybranych przez użytkownika).
  • Kandydat pasujący do bieżącej sieci otrzymuje zwiększenie wyniku skonfigurowane przez nakładki config_wifiFrameworkCurrentNetworkBonusMin i config_wifiFrameworkCurrentNetworkBonusPercent (otrzymuje dodatkową premię na podstawie procentu jego RSSI i wyniku opartego na przepustowości, aż do konfigurowalnego minimum).
  • Bezpieczna sieć jest oceniana wyżej niż sieć otwarta. Bonus konfiguruje się za pomocą nakładki config_wifiFrameworkSecureNetworkBonus .
  • Sieć niemierzona (bezpłatna) jest oceniana wyżej niż sieć mierzona (płatna). Bonus konfiguruje się za pomocą nakładki config_wifiFrameworkUnmeteredNetworkBonus .
  • Zapisana sieć jest oceniana wyżej niż sieć sugerowana przy użyciu interfejsu Suggestion API. Bonus konfiguruje się za pomocą nakładki config_wifiFrameworkSavedNetworkBonus .
  • Niezaufane sieci (które można zażądać w ramach interfejsu Sugestia API) uzyskują niższą ocenę niż jakakolwiek inna sieć.
  • Sieć, w której wcześniej wykryto brak Internetu, otrzymuje wynik 0, jeśli urządzenie jest obecnie połączone z inną siecią mającą dostęp do Internetu.

Domyślna premia dla zapisanych i sugestii oraz niezmierzonych i zmierzonych (tzn. domyślnych wartości nakładek) tworzy ścisłą kolejność priorytetów dla zapisanych, sugerowanych, mierzonych i niezmierzonych:

  1. Zapisane sieci niezmierzone
  2. Sugerowane sieci niemierzone
  3. Zapisane sieci pomiarowe
  4. Sugerowane sieci pomiarowe

Oznacza to, że zapisana sieć niemierzona (bezpłatna) jest zawsze wybierana przed zapisaną siecią płatną (płatną). Niedawno wybrany (przez użytkownika lub aplikację) bonus punktowy może zastąpić ten rygorystyczny priorytet.

W środowisku może być zainstalowanych kilku kandydatów na strzelców, ale tylko jeden może być aktywny w danym momencie. Pozostałe wskaźniki punktacji można wykorzystać do metryk (w celu zbadania alternatywnych algorytmów). W systemie Android 11 domyślnym strzelcem jest ThroughputScorer .

Blokowanie SSID i BSSID

Framework może blokować identyfikatory SSID i/lub BSSID, to znaczy nie uwzględniać ich w połączeniach tymczasowo lub na stałe.

Blokowanie BSSID

Blokowanie BSSID polega na utrzymywaniu dwóch liczników awarii, licznika awarii ciągłych i licznika serii, dla poszczególnych typów awarii (lista typów awarii znajduje się poniżej). Gdy wystąpi awaria:

  • Licznik odpowiedniego typu awarii jest zwiększany.
  • Jeśli zostanie osiągnięty próg awarii dla tego typu awarii:
    • Identyfikator BSSID jest zablokowany.
    • Licznik serii dla awarii jest zwiększany.

Czas trwania blokowania identyfikatora BSSID rozpoczyna się od (konfigurowalnej) wartości bazowej (określonej przez nakładki config_wifiBssidBlocklistMonitorBaseBlockDurationMs lub config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs , w zależności od RSSI) i rośnie wykładniczo aż do konfigurowalnej górnej granicy (określonej przez config_wifiBssidBlocklistMonitorFailureStreakCap nakładka ailureStreakCap). Czas trwania wzrasta, jeśli awarie stale występują na tym samym identyfikatorze BSSID. Czas trwania to podstawowy czas trwania wydłużany wykładniczo przez serię niepowodzeń, co oznacza, że ​​passa niepowodzeń wynosząca 2 oznacza 4-krotny czas trwania bloku podstawowego.

Progi blokowania BSSID zależą od przyczyny awarii i można je dostosować za pomocą nakładek:

  • AP odrzuca skojarzenie przy użyciu MBO/OCE Nie można obsłużyć nowego kodu STA : config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold .
  • Sprawdzanie poprawności Internetu przez tę sieć nie powiodło się: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold .
  • Kod błędu uwierzytelnienia nieprawidłowego hasła: config_wifiBssidBlocklistMonitorWrongPasswordThreshold .
  • Kod błędu uwierzytelniania niepowodzenia EAP dla sieci EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold .
  • Odrzucenie skojarzenia, inne ogólne odrzucenia skojarzenia: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold .
  • Limit czasu skojarzenia: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold .
  • Błąd uwierzytelnienia, inne ogólne błędy uwierzytelnienia: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold .
  • Awaria DHCP, brak udostępnienia DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold .
  • Nieprawidłowe rozłączenie, urządzenie rozłączyło się z siecią w bardzo krótkim czasie po podłączeniu: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold . Okno czasowe można skonfigurować za pomocą config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs .

Warunki czyszczenia listy blokowanych BSSID

Identyfikator BSSID jest usuwany z listy blokowanych, gdy:

  • Wi-Fi jest przełączane: wszystkie identyfikatory BSSID są usuwane z listy blokowanych.
  • Użytkownik klika sieć w selektorze Wi-Fi: wszystkie identyfikatory BSSID sieci wybranej przez użytkownika są usuwane z listy zablokowanych.
  • Limit czasu: identyfikatory BSSID są usuwane z listy blokowanych po osiągnięciu czasu trwania bloku.
  • Uruchom ponownie: wszystkie listy blokowania zostaną usunięte.
  • Sieć usunięta: wszystkie identyfikatory BSSID powiązane z tą siecią zostaną usunięte z listy zablokowanych.

Warunki resetowania liczników awarii i serii:

  • Uruchom ponownie: reset dla wszystkich identyfikatorów BSSID.
  • Sieć usunięta: Zresetuj identyfikatory BSSID powiązane z siecią.
  • Pomyślne połączenie L2: Zresetuj następujące 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 (wyczyszczone warunkowo tylko jeśli ostatnie połączenie urządzenia z tym BSSID miało miejsce ponad 3 godziny temu)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Pomyślna weryfikacja sieci: resetuje się dla następującego kodu błędu.

    • REASON_NETWORK_VALIDATION_FAILURE
  • Powodzenie udostępniania DHCP: resetuje się w przypadku następującego kodu błędu.

    • REASON_DHCP_FAILURE

Blokowanie SSID

Blokowanie SSID działa podobnie do blokowania BSSID. Licznik awarii według typu awarii w sieci jest zwiększany, gdy wystąpią awarie połączenia (tego typu). Gdy liczba błędów określonego typu przekracza próg, identyfikator SSID jest trwale lub tymczasowo blokowany w zależności od konfiguracji. Konfiguracja dla każdego typu awarii jest zakodowana w WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS i jest podsumowana poniżej.

* W przypadku sieci tymczasowo wyłączonych czas trwania wyłączenia zmienia się dynamicznie w zależności od liczby kolejnych awarii połączenia występujących w sieci. Po pięciu kolejnych nieudanych próbach nawiązania połączenia z siecią, każda kolejna awaria powoduje, że czas trwania wyłączenia jest dwukrotnie dłuższy niż poprzedni. Na przykład sieć z pięcioma kolejnymi awariami zostanie wyłączona na 5 minut, następnie na 10 minut przy szóstej awarii, na 20 minut przy siódmej awarii i tak dalej, aż do maksymalnego limitu 18 godzin.

Kod awarii Opis Próg Podstawowy czas wyłączenia* Wyłącz typ
DISABLED_DHCP_FAILURE Brak udostępnienia protokołu DHCP 5 5 minut Tymczasowy
DISABLED_NO_INTERNET_TEMPORARY Sprawdzanie poprawności sieci nie powiodło się, ale użytkownik stwierdza, że ​​chce w przyszłości nadal łączyć się z tą siecią 1 10 minut Tymczasowy
DISABLED_AUTHENTICATION_NO_CREDENTIALS Suplikant nie ma danych uwierzytelniających umożliwiających połączenie się z siecią 1 NA Stały
DISABLED_NO_INTERNET_PERMANENT Wartość domyślna w przypadku niepowodzenia sprawdzania poprawności sieci 1 NA Stały
DISABLED_BY_WIFI_MANAGER Przestarzałe i nieużywane 1 NA Stały
DISABLED_BY_WRONG_PASSWORD Hasło jest nieprawidłowe i nigdy nie nawiązano pomyślnego połączenia z tą siecią 1 NA Stały
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Awaria EAP, gdy karta SIM nie jest subskrybowana 1 NA Stały
DISABLED_ASSOCIATION_REJECTION Błędy odrzucenia skojarzeń 5 5 minut Tymczasowy
DISABLED_AUTHENTICATION_FAILURE Inne błędy uwierzytelniania (tzn. nie błędne hasło lub awaria protokołu EAP) 5 5 minut Tymczasowy
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Awaria protokołu EAP specyficznego dla dostawcy (prywatnego). 1 NA Stały
DISABLED_NETWORK_NOT_FOUND Suplikant nie znalazł w wynikach skanowania sieci odpowiadającej sieci żądanej przez strukturę połączenia (w tym możliwości sieci). 2 5 minut Tymczasowy
DISABLED_CONSECUTIVE_FAILURES Nie udało się nawiązać połączenia z siecią pięć lub więcej razy z rzędu. Typ awarii tych awarii obejmuje między innymi typy awarii wymienione w tej tabeli.
5 5 minut Tymczasowy

Tymczasowo wyłączona sieć zostanie ponownie włączona, gdy:

  • Upłynął czas wyłączenia.
  • Użytkownik ręcznie wybiera sieć, z którą chce się połączyć.
  • Użytkownik przełącza Wi-Fi.
  • System zostanie uruchomiony ponownie.
  • Sieć została wyłączona przy bardzo niskim RSSI, ale później została ponownie wykryta przy umiarkowanym lub wyższym RSSI.

Trwale wyłączona sieć zostaje ponownie włączona, gdy:

  • Użytkownik ręcznie wybiera sieć, z którą chce się połączyć.

Liczniki awarii sieci są resetowane, gdy:

  • Sieć została usunięta.
  • Urządzenie pomyślnie podłączyło się do sieci.
  • Sieć została ponownie włączona po upływie limitu czasu wyłączenia.
  • Użytkownik ręcznie wybiera sieć, z którą chce się połączyć.
  • System zostanie uruchomiony ponownie.

Karty wyników

Karty wyników wprowadzone w systemie Android 10 rejestrują statystyki urządzenia dotyczące identyfikatorów BSSID. Karty wyników są utrwalane przy użyciu usługi IpMemoryStore .

Karty wyników nie są używane przy wyborze sieci w Androidzie 11.

Wybór połączenia użytkownika

Android ma algorytm wyboru połączenia użytkownika, który umożliwia procesowi wyboru preferowanie sieci Wi-Fi, z którymi użytkownik wyraźnie się połączył, na przykład z siecią domową. Użytkownicy mogą preferować takie sieci od sieci publicznych, nawet jeśli wydajność jest niższa niż w sieci publicznej, ponieważ zapewniają one dodatkowe usługi, takie jak możliwość sterowania urządzeniami domowymi.

Preferencje użytkownika dotyczące sieci są rejestrowane poprzez zaznaczenie wszystkich widocznych konfiguracji Wi-Fi i ich siły sygnału w momencie wybierania sieci przez użytkownika. Jeśli w procesie automatycznego wyboru zostanie wybrana jedna z zaznaczonych konfiguracji Wi-Fi i dostępna będzie sieć wybrana przez użytkownika, algorytm wyboru połączenia przez użytkownika zastępuje wybór siecią wybraną przez użytkownika, jeśli spełnione są następujące warunki:

  • Sieć użytkownika Connect Choice miała dostęp do Internetu podczas ostatniego użycia
  • Opcja połączenia użytkownika ma siłę sygnału nie gorszą niż w przypadku, gdy została pierwotnie wybrana z marginesem błędu. Ten margines błędu można skonfigurować za pomocą nakładki config_wifiEstimateRssiErrorMarginDb .

Sieć wybrana przez użytkownika połącz się nadal po ponownym uruchomieniu. Opcja połączenia użytkownika działa w przypadku sieci zapisanych, sieci Passpoint i sieci sugestii.

Dwie równoczesne stacje

W tej sekcji opisano wybór sieci Wi-Fi, gdy urządzenie obsługuje jednoczesne łączenie się z dwiema sieciami Wi-Fi.

Zrób przed przerwą

Jeśli włączona jest funkcja make-before-break , urządzenie będzie próbowało połączyć się z nową siecią przed rozłączeniem się ze starą siecią. Przepływ typu „załącz przed przerwą” wykorzystuje ten sam algorytm wyboru sieci, co przełączanie sieci typu „przerwa przed przerwą” (co ma miejsce, gdy urządzenie odłącza się od starej sieci przed podłączeniem do nowej). Jeśli algorytm wyboru sieci wybierze sieć, której nie można przełączyć przy użyciu funkcji „make-before-break”, urządzenie automatycznie powróci do trybu „break-befor-make”.

Jednoczesne ograniczone połączenie internetowe

Jeśli włączona jest funkcja jednoczesnego ograniczonego połączenia i połączenia internetowego , urządzenie może połączyć się z dodatkową siecią Wi-Fi z ograniczeniami, która jest dostępna tylko dla wybranych aplikacji skonfigurowanych przez producenta urządzenia. Instrukcje dla producentów urządzeń dotyczące konfiguracji znajdują się w części Ograniczenia jednoczesnego połączenia i Połączenie internetowe .

Kiedy algorytm wyboru sieci wykryje wyniki skanowania odpowiadające sugestii płatnej/prywatnej OEM, automatycznie łączy się z nią jako z drugą siecią. Wybór sieci dla podstawowej sieci Wi-Fi (która zapewnia połączenie internetowe zwykłym aplikacjom) zwykle odbywa się równolegle.

Często zadawane pytania (FAQ)

  1. Czy bezpieczne sieci zawsze mają pierwszeństwo przed sieciami otwartymi?

    Nie. Sieci zapisane i sugerowane oraz zmierzone i niezmierzone to główne kategorie, według których oceniane są sieci. W każdej kategorii sieci bezpieczne mają pewien priorytet w stosunku do sieci otwartych, ale znacznie większą wagę przywiązuje się do jakości połączenia.

    Powodem jest to, że rzeczywiste bezpieczeństwo danych użytkownika zapewnia kompleksowe szyfrowanie (na przykład TLS). Bezpieczne sieci szyfrują tylko pierwszy etap komunikacji, a nawet wtedy w przypadku sieci z kluczami wstępnymi nie zapewniają dużej prywatności.

  2. Dlaczego zapisane sieci mają pierwszeństwo przed sieciami sugerowanymi?

    Zapisane sieci bezpłatne (niezmierzone) mają priorytet w stosunku do sugerowanych sieci bezpłatnych, a zapisane sieci z licznikiem mają priorytet w stosunku do sugerowanych sieci z licznikiem.

    Zapisane sieci mają priorytet w stosunku do sieci sugerowanych, ponieważ zapisane sieci to sieci, które użytkownik dodał bezpośrednio do urządzenia. Oznacza to, że jeśli to możliwe, wolisz łączyć się z tymi sieciami.

    Należy pamiętać, że użytkownicy mogą wyłączyć funkcję automatycznego łączenia dla poszczególnych zapisanych sieci, co oznacza, że ​​z tych sieci można korzystać wyłącznie ręcznie i nie będą one uwzględniane automatycznie przez urządzenie.

  3. Czy mogę zmienić kolejność ścisłego priorytetu lub całkowicie ją usunąć?

    Producent urządzenia może modyfikować decyzje dotyczące wyboru sieci, modyfikując nakładki bonusowe wymienione w powyższych sekcjach. Jednakże zmiana wartości domyślnych nie jest zalecana, ponieważ zostały one wybrane po dokładnym rozważeniu wielu przypadków użycia.