Do czego służy opcja „Agresywne przełączanie Wi-Fi na połączenie komórkowe” w Ustawieniach programisty?

29

W systemie Android Lollipop 5.0 zauważyłem, że „Opcje programisty” zawierają pole wyboru „Agresywne przełączanie Wi-Fi na komórkowe”, które jest domyślnie odznaczone. Czy ktoś wie, co robi to ustawienie i dlaczego jest ono domyślnie wyłączone i ukryte w opcjach programisty?

ivanatpr
źródło
Sądząc po nazwie opcji, wydaje się, że zaznaczenie tej opcji sprawia, że ​​telefon chętniej korzysta z danych komórkowych, gdy sygnał WiFi jest zły
saloalv

Odpowiedzi:

26

Kod shouldSwitchNetwork()najlepiej wyjaśnia, co robi. To po prostu sztucznie zmniejsza RSSI Wi-Fi (wskazanie siły odbieranego sygnału), aby zachęcić maszynę stanu WiFi do podjęcia decyzji o przełączeniu połączenia z Wi-Fi na sieć komórkową. Wokół linii 3559 WifiStateMachine.java ( linia 4262 dla Androida 6.0.1_r10):

int rssi = mWifiInfo.getRssi() - 6 * mAggressiveHandover
        + (homeNetworkBoost ? WifiConfiguration.HOME_NETWORK_RSSI_BOOST : 0);

Zmienna mAggressiveHandoverto int, że jest ustawiony na 0 lub 1 w ustawieniach Developer :

private void writeWifiAggressiveHandoverOptions() {
    mWifiManager.enableAggressiveHandover(mWifiAggressiveHandover.isChecked() ? 1 : 0);
}

rssiZmienna przechodzi do wpływu jaki połączenie jest sklasyfikowany: isBadRSSI, isLowRSSI, lub isHighRSSI.

Co do tego, dlaczego jest ukryty w opcjach programisty, powiedziałbym, że dzieje się tak, ponieważ wydaje się nieco hackerski, z pozornie arbitralnym skalarem (6), który wymyślił pewien deweloper, aby popchnąć zachowanie w pożądanym kierunku. Google prawdopodobnie nie ma pewności co do konsekwencji tego ustawienia i optymalnego sposobu dostosowania rssi. Jeśli się mylę i to ma jakiś sens, z przyjemnością to przyznam i wyjaśnię tutaj, dlaczego.

Wyłączenie tego ustawienia NIE powoduje całkowitego wyłączenia przekazywania komórkowego . Połączenie Wi-Fi nadal otrzymuje wynik i jest wyłączane, jeśli wynik jest zbyt niski. Ale hej, początkowy wynik jest również ustalany arbitralnie.

chappjc
źródło
5

Przekazywanie Wi-Fi do sieci komórkowej to funkcja w telefonach, która automatycznie przełącza się na dane komórkowe, gdy nie masz silnego połączenia Wi-Fi. Chcesz to włączyć z kilku powodów:

  • Oszczędza baterię - jeśli telefon nie przełączy się na dane komórkowe, gdy nie może połączyć się z połączeniem Wi-Fi, telefon będzie nadal wyszukiwał WiFi, wykorzystując w ten sposób baterię.
  • Nie będziesz musiał wyłączać Wi-Fi, gdy wychodzisz z domu lub nie masz połączenia, aby korzystać z danych.
Mario
źródło
1
Czy więc wyłączenie „Agresywnego przełączania Wi-Fi na połączenie komórkowe” całkowicie wyłącza tę funkcję? czy to po prostu zmienia zachowanie, aby mieć wyższą wartość graniczną dla przejścia z Wi-Fi na telefon komórkowy?
ivanatpr
-2

Nie, NIE wyłącza ona całkowicie tej funkcji, ani nie włącza jej poprzez włączenie, można ją WŁĄCZYĆ / WYŁĄCZYĆ tylko w ustawieniach → Wi-Fi → Zaawansowane menu Wi-Fi (ikona z trzema kropkami w prawym górnym rogu rogu), a następnie zaznaczając pole „Inteligentny przełącznik” (Verizon Samsung Galaxy Note 4 Android 5.1.1), w przeciwnym razie jedyną rzeczą, którą uczciwie robisz za pośrednictwem menu programisty, jest po prostu wymuszenie tej samej dokładnej opcji, jeśli / gdy telefon jest doświadcza żadnego rodzaju sieci „czkawki” , i to w sposób zapomni zmienić typ sieci. Podejrzewam, że można by to nazwać tępym lub nagłym przypomnieniem dla systemu o zmianie połączenia internetowego z Wi-Fi na dane komórkowe i / lub odwrotnie.

Ryan Kelly
źródło
1
Dziękujemy za próbę pomocy OP, ale zapytano o to rok temu, a czytelnikom trudno jest udzielić odpowiedzi. Czy możesz edytować swój post, aby poprawnie używać punktorów i / lub oznaczeń kodu?
Aaron Gillion,