¿Qué hace la opción "Transferencia agresiva de Wi-Fi a celular" en la configuración del desarrollador?

En Android Lollipop 5.0, noté que "Opciones de desarrollador" presenta una casilla de verificación para "Transferencia agresiva de Wi-Fi a celular" que está desmarcada de manera predeterminada. ¿Alguien sabe qué hace esta configuración y por qué está deshabilitada de forma predeterminada y oculta en las opciones de desarrollador?

A juzgar por el nombre de la opción, parece que marcar esta opción hace que el teléfono esté más feliz de usar datos móviles cuando la señal WiFi es mala.

Respuestas (3)

El código para shouldSwitchNetwork()explica mejor lo que hace. Simplemente reduce artificialmente el WiFi RSSI (indicación de intensidad de la señal recibida) para alentar a la máquina de estado WiFi a decidir cambiar la conexión de WiFi a la red celular. Alrededor de la línea 3559 de WifiStateMachine.java ( línea 4262 para Android 6.0.1_r10):

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

La variable mAggressiveHandoveres una intque se establece en 0 o 1 por la configuración del desarrollador :

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

La rssivariable pasa a influir en cómo se clasifica la conexión: isBadRSSI, isLowRSSIo isHighRSSI.

En cuanto a por qué está oculto en las opciones de desarrollador, diría que se debe a que parece un poco raro, con un escalar aparentemente arbitrario (6) que se le ocurrió a algunos desarrolladores para empujar el comportamiento en la dirección deseada. Google probablemente no esté seguro de las consecuencias de esta configuración y la forma óptima de ajustar rssi. Si me equivoco y esto es de alguna manera significativo, estoy feliz de admitirlo y explicar aquí por qué.

Desactivar esta configuración NO desactiva la transferencia celular por completo . La conexión WiFi sigue obteniendo una puntuación y se desactiva si la puntuación es demasiado baja. Pero bueno, la puntuación inicial también se establece de forma arbitraria.

Wifi to Cellular Handover es una función en los teléfonos que cambia automáticamente a datos móviles cuando no tienes una conexión WiFi fuerte. Querrá habilitar esto por varias razones:

  • Ahorrará batería: si su teléfono no cambia a datos móviles cuando no puede conectarse a una conexión Wifi, su teléfono continuará buscando WiFi y, por lo tanto, usará batería.
  • No tendrás que apagar el WiFi cuando salgas de casa o cuando no tengas conexión para usar datos.
Entonces, ¿tener desactivada la "transferencia agresiva de Wi-Fi a celular" desactiva la función por completo? ¿O simplemente altera el comportamiento para tener un límite más alto para cambiar de wifi a celular?

No, NO desactiva la función por completo, ni la ACTIVARÁ al habilitarla, SOLO se puede ACTIVAR/DESACTIVAR en la configuración → Wi-Fi → Menú avanzado de Wi-Fi (El ícono de tres puntos en la parte superior derecha esquina) y luego marque la casilla junto a "Interruptor inteligente" (Verizon Samsung Galaxy Note 4 Android 5.1.1), de lo contrario, lo único que está haciendo honestamente a través del menú de desarrolladores es simplemente forzar esta misma opción para que funcione si / cuando su teléfono está experimentando cualquier tipo de "hipo" de red , y de alguna manera se olvida de cambiar el tipo de red. Supongo que podría pensar en ello como un recordatorio contundente o abrupto para que el sistema cambie su conexión a Internet de Wi-Fi a datos móviles y/o viceversa.

Gracias por intentar ayudar al OP, pero esto se preguntó hace 1 año, y su respuesta es difícil de seguir para los lectores. ¿Puedes editar tu publicación para usar viñetas y/o marcas de código correctamente?