29

In Android Lollipop 5.0, I noticed that "Developer Options" features a checkbox for "Aggressive Wi-Fi to Cellular handover" that is unchecked by default. Does anybody know what this setting does and why it's disabled by default and hidden under developer options?

  • Judging by the name of the option it seems that checking this option makes the phone be more happy to use cellular data when WiFi signal is bad – saloalv Dec 10 '14 at 6:39
26

The code for shouldSwitchNetwork() best explains what it does. It just artificially reduces the WiFi RSSI (received signal strength indication) to encourage the WiFi state machine to decide to switch the connection from WiFi to cellular network. Around line 3559 of WifiStateMachine.java (line 4262 for Android 6.0.1_r10):

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

The variable mAggressiveHandover is an int that is set to 0 or 1 by the Developer Settings:

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

The rssi variable goes on to influence how the connection is classified: isBadRSSI, isLowRSSI, or isHighRSSI.

As to why it's hidden under the developer options, I'd say that is because it seems a little hackish, with a seemingly arbitrary scalar (6) that some dev came up with to nudge the behavior in the desired direction. Google is probably uncertain about the consequences of this setting and the optimal way to adjust rssi. If I'm wrong and this is somehow meaningful, I'm happy to admit it and explain here why.

Turning this setting off does NOT turn off cellular handover altogether. The WiFi connection still gets a score and is disabled if the score is too low. But hey, the initial score is set arbitrarily too.

5

Wifi to Cellular Handover is a feature in phones that automatically switches to cellular data when you do not have a strong WiFi connection. You would want to enable this for a few reasons:

  • It will save battery - If your phone doesn't switch to cellular data when it can't connect to a Wifi connection, your phone will continue to search for WiFi, thus using battery.
  • You won't have to turn off WiFi when you leave your house or when you don't have a connection in order to use data.
  • 1
    So does having "Aggressive Wi-Fi to Cellular handover" turned off turn off the feature completely? or does it simply alter the behavior to have a higher cutoff for when to switch from wifi to cellular? – ivanatpr Dec 11 '14 at 21:27
-2

No it does NOT turn off the feature completely, nor will it turn it ON by enabling it, it can ONLY be turned ON/OFF in settings → Wi-Fi → Wi-Fi Advanced menu (The three dot icon in the upper right hand corner) and then checking the box next to "Smart switch" (Verizon Samsung Galaxy Note 4 Android 5.1.1), otherwise the only thing that you're honestly doing via the developers menu is simply forcing this same exact option to work if/when your phone is experiencing any type of network "hiccup", and it in a way forgets to change the network type. I suppose you could think of it as a blunt or abrupt reminder to the system to change its internet connection from Wi-Fi to cellular data, and/or vice-versa.

  • 1
    Thanks for trying to help the OP, but this was asked 1 year ago, and your answer is hard to follow along for readers. Can you edit your post to properly use bullet points and/or code markings? – Aaron Gillion Feb 19 '16 at 20:01

protected by Community Apr 1 '18 at 16:58

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.