Que fait l'option «Transfert Wi-Fi agressif vers cellulaire» dans les paramètres du développeur?

29

Dans Android Lollipop 5.0, j'ai remarqué que "Developer Options" comporte une case à cocher pour "Aggressive Wi-Fi to Cellular handover" qui n'est pas cochée par défaut. Quelqu'un sait-il ce que fait ce paramètre et pourquoi il est désactivé par défaut et masqué sous les options du développeur?

ivanatpr
la source
À en juger par le nom de l'option, il semble que la vérification de cette option rend le téléphone plus heureux d'utiliser les données cellulaires lorsque le signal WiFi est mauvais
saloalv

Réponses:

26

Le code pour shouldSwitchNetwork()mieux explique ce qu'il fait. Il réduit simplement artificiellement le WiFi RSSI (indication de la force du signal reçu) pour encourager la machine d'état WiFi à décider de basculer la connexion du WiFi au réseau cellulaire. Autour de la ligne 3559 de WifiStateMachine.java ( ligne 4262 pour Android 6.0.1_r10):

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

La variable mAggressiveHandoverest un intqui est réglé sur 0 ou 1 par les paramètres du développeur :

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

La rssivariable de passe à influencer la façon dont la connexion est classée: isBadRSSI, isLowRSSIou isHighRSSI.

Quant à savoir pourquoi il est caché sous les options de développement, je dirais que c'est parce qu'il semble un peu hackish, avec un scalaire apparemment arbitraire (6) que certains développeurs ont trouvé pour pousser le comportement dans la direction souhaitée. Google est probablement incertain des conséquences de ce paramètre et de la manière optimale de s'adapter rssi. Si je me trompe et que cela a un sens, je suis heureux de l'admettre et d'expliquer ici pourquoi.

La désactivation de ce paramètre ne désactive PAS complètement le transfert cellulaire . La connexion WiFi obtient toujours un score et est désactivée si le score est trop faible. Mais bon, le score initial est également fixé arbitrairement.

chappjc
la source
5

Le transfert Wifi vers cellulaire est une fonctionnalité des téléphones qui passe automatiquement aux données cellulaires lorsque vous ne disposez pas d'une connexion WiFi solide. Vous voudriez l'activer pour plusieurs raisons:

  • Cela économisera de la batterie - Si votre téléphone ne passe pas aux données cellulaires lorsqu'il ne peut pas se connecter à une connexion Wifi, votre téléphone continuera de rechercher le WiFi, utilisant ainsi la batterie.
  • Vous n'aurez pas à désactiver le WiFi lorsque vous quittez votre maison ou lorsque vous n'avez pas de connexion pour utiliser les données.
Mario
la source
1
Est-ce que la désactivation de la fonction "Transfert Wi-Fi agressif vers cellulaire" désactive complètement la fonctionnalité? ou cela modifie-t-il simplement le comportement pour avoir un seuil plus élevé pour savoir quand passer du wifi au cellulaire?
ivanatpr
-2

Non, il ne désactive PAS complètement la fonctionnalité, ni ne l'activera en l'activant, il ne peut être activé / désactivé que dans les paramètres → Wi-Fi → Menu Wi-Fi avancé (l'icône à trois points dans le coin supérieur droit) coin), puis en cochant la case à côté de "Smart switch" (Verizon Samsung Galaxy Note 4 Android 5.1.1), sinon la seule chose que vous faites honnêtement via le menu des développeurs est simplement de forcer cette même option exacte à fonctionner si / lorsque votre téléphone connaît tout type de "hoquet" réseau , et il oublie en quelque sorte de changer le type de réseau. Je suppose que vous pourriez y voir un rappel brutal ou brutal au système de changer sa connexion Internet du Wi-Fi aux données cellulaires, et / ou vice versa.

Ryan Kelly
la source
1
Merci d'avoir essayé d'aider le PO, mais cela a été demandé il y a 1 an, et votre réponse est difficile à suivre pour les lecteurs. Pouvez-vous modifier votre message pour utiliser correctement les puces et / ou les marquages ​​de code?
Aaron Gillion