Answers:
shouldSwitchNetwork()
最好的代码解释了它的作用。它只是人为地减少了WiFi RSSI(接收信号强度指示),以鼓励WiFi状态机决定将连接从WiFi切换到蜂窝网络。在WifiStateMachine.java的第3559 行周围(Android 6.0.1_r10的第4262行):
int rssi = mWifiInfo.getRssi() - 6 * mAggressiveHandover
+ (homeNetworkBoost ? WifiConfiguration.HOME_NETWORK_RSSI_BOOST : 0);
变量mAggressiveHandover
是一个变量int
,由开发者设置设置为0或1:
private void writeWifiAggressiveHandoverOptions() {
mWifiManager.enableAggressiveHandover(mWifiAggressiveHandover.isChecked() ? 1 : 0);
}
该rssi
变量接着影响连接的方式分为:isBadRSSI
,isLowRSSI
,或isHighRSSI
。
至于为什么将其隐藏在开发人员选项下,我之所以这么说是因为它似乎有些骇人听闻,有些开发人员想出了一个随意的标量(6)来按期望的方向微调该行为。Google可能不确定这种设置的后果以及最佳的调整方法rssi
。如果我错了并且这在某种意义上是有意义的,那么我很乐意承认并在这里解释原因。
关闭此设置不会完全关闭蜂窝切换。WiFi连接仍然会获得分数,如果分数太低,则会被禁用。但是嘿,初始分数也是任意设置的。
Wifi到蜂窝移动切换是电话中的一项功能,当您没有牢固的WiFi连接时,该功能会自动切换到蜂窝数据。您可能出于以下几个原因要启用此功能:
不,它不会完全关闭该功能,也不会通过启用它来将其打开,只能在设置→Wi-Fi→Wi-Fi高级菜单中将其打开/关闭(右上角的三个点图标角落),然后选中“智能开关”(Verizon Samsung Galaxy Note 4 Android 5.1.1)旁边的框,否则,您诚实地通过开发人员菜单所做的唯一一件事情就是,如果//当您的电话遇到任何类型的网络“打cup”时,它以某种方式忘记更改网络类型。我想您可以将其视为系统钝化或突然提醒,以将其互联网连接从Wi-Fi更改为蜂窝数据,反之亦然。