回答:
shouldSwitchNetwork()
最高のコードは、それが何をするのかを説明しています。WiFi状態マシンがWiFiからセルラーネットワークへの接続の切り替えを決定するように、WiFi RSSI(受信信号強度表示)を人為的に減らします。周りWifiStateMachine.javaのライン3559(ライン4262アンドロイド6.0.1_r10用):
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 to Cellular Handoverは、強力なWiFi接続がない場合に携帯電話データに自動的に切り替える電話の機能です。これを有効にする理由はいくつかあります。
いいえ、機能を完全にオフにすることも、有効にしてオンにすることもできません。設定でのみオン/オフにすることができます→Wi-Fi→Wi-Fi Advancedメニュー(右上の3つのドットのアイコンコーナー)、その後、そうでない場合は、「スマートスイッチ」(ベライゾンサムスンギャラクシー注4アンドロイド5.1.1)の隣にあるチェックボックスをオンにのみ、あなたが正直に開発メニューを経由してやっているということは、単に仕事にこれと同じ正確なオプションを迫られている場合/電話機が何らかのタイプのネットワーク「しゃっくり」を経験しており、ある意味でネットワークタイプの変更を忘れている場合。インターネット接続をWi-Fiからセルラーデータに、またはその逆に変更するためのシステムへの鈍いまたは突然のリマインダーと考えることができると思います。