shouldSwitchNetwork()सर्वोत्तम के लिए कोड बताता है कि वह क्या करता है। यह वाईफाई स्टेट मशीन को कनेक्शन से सेलुलर नेटवर्क पर स्विच करने का निर्णय लेने के लिए प्रोत्साहित करने के लिए बस कृत्रिम रूप से वाईफाई आरएसएसआई (संकेत शक्ति संकेत प्राप्त करता है) को कम करता है। लगभग 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। अगर मैं गलत हूं और यह किसी भी तरह से सार्थक है, तो मैं इसे स्वीकार करने और यहां क्यों समझाने के लिए खुश हूं।
इस सेटिंग को बंद करने से सेलुलर हैंडओवर पूरी तरह से बंद नहीं होता है । वाईफाई कनेक्शन अभी भी एक स्कोर प्राप्त करता है और स्कोर बहुत कम होने पर अक्षम हो जाता है। लेकिन हे, प्रारंभिक स्कोर भी मनमाने ढंग से सेट किया गया है।