หน้านี้สรุปอัลกอริทึมและขั้นตอนที่ใช้ใน Android 12 สำหรับการเลือกและสลับระหว่างเครือข่าย Wi-Fi Android ประเมินคุณภาพของเครือข่ายที่เชื่อมต่ออย่างต่อเนื่องและประเมินคุณภาพของเครือข่ายที่มีอยู่
ชีวิตของการเชื่อมต่ออัตโนมัติ
ข้อมูลนี้จะอธิบายกระบวนการที่อุปกรณ์ Android ประเมินและเชื่อมต่อกับเครือข่าย Wi-Fi ที่พร้อมใช้งาน
อุปกรณ์จะสแกนหาเครือข่ายที่ใช้ได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้ ขึ้นอยู่กับว่าหน้าจอเปิดหรือปิดอยู่
- เปิดหน้าจอ (เชื่อมต่อแล้ว): ระบบย่อยการเชื่อมต่อ Android จะประเมินเป็นประจำว่าการเชื่อมต่อปัจจุบันดีพอที่จะข้ามการสแกนหรือไม่ (ตามที่กำหนดไว้ใน การสแกนบนหน้าจอ ) หากการเชื่อมต่อไม่ดีพอที่จะข้ามการสแกน ระบบย่อยการเชื่อมต่อจะทริกเกอร์การ สแกน เพื่อตรวจหาเครือข่ายที่พร้อมใช้งาน การสแกนเหล่านี้ยังสามารถทริกเกอร์โดยส่วนประกอบอื่นๆ ของระบบ เช่น ระบบตำแหน่งหรือแอป (รวมถึงแอปการตั้งค่า)
- เปิดหน้าจอ (ตัดการเชื่อมต่อ): ระบบย่อยการเชื่อมต่อ Android จะออกการสแกนเป็นระยะตามกำหนดการแบ็คออฟแบบเอ็กซ์โพเนนเชียล โมดูลจะประเมินผลการสแกนทั้งหมดที่ได้รับ และพยายามเลือกเครือข่ายที่ดีที่สุดที่จะเชื่อมต่อ
- ปิดหน้าจอ (ตัดการเชื่อมต่อ): CPU ของโฮสต์จะตั้งโปรแกรมเฟิร์มแวร์พร้อมรายการเครือข่ายที่ต้องการโดยใช้การสแกนเครือข่ายที่ต้องการ (PNO) ทันทีที่หน้าจอดับ เฟิร์มแวร์จะปลุกโฮสต์หากพบเครือข่ายที่ต้องการ AOSP ถือว่าอุปกรณ์รองรับ PNO
คุณสามารถใช้วิธี
WifiManager#allowAutojoinGlobal(boolean)
เพื่อปิดใช้งานการเชื่อมต่ออัตโนมัติ นี่เป็น API ที่มีสิทธิพิเศษที่ผู้ผลิตอุปกรณ์สามารถใช้ได้ในบางกรณี (เช่น อุปกรณ์ที่ไม่ใช่อุปกรณ์เคลื่อนที่และกำหนดค่าไว้ล่วงหน้า)หากอุปกรณ์เชื่อมต่อและโอเวอร์
config_wifi_framework_enable_associated_network_selection
ถูกตั้งค่าfalse
จะไม่มีการสแกนการเชื่อมต่อใดๆ และผลการสแกนจะไม่ทริกเกอร์การเลือกเครือข่าย การตั้งค่านี้ไม่มีผลเมื่อยกเลิกการเชื่อมต่ออุปกรณ์ หมายความว่าการสแกนการเชื่อมต่อและการเลือกเครือข่ายยังคงเกิดขึ้นผลการสแกนจะถูกประเมิน
หากอุปกรณ์เชื่อมต่อกับเครือข่าย Wi-Fi กรอบงานจะประเมินว่าเครือข่ายปัจจุบัน ดีพอที่จะข้ามการเลือกเครือข่าย หรือไม่
เครือข่ายถูกกำหนดว่า ดีพอที่จะข้ามการเลือกเครือข่าย หากตรงตามข้อกำหนดใด ๆ ต่อไปนี้:
- ผ่านไปน้อยกว่า 10 วินาทีนับตั้งแต่การเลือกเครือข่ายครั้งล่าสุด
- ผู้ใช้เพิ่งเชื่อมต่อกับเครือข่ายด้วยตนเอง (ซึ่งล่าสุดสามารถกำหนดค่าได้โดยใช้การซ้อนทับ
config_wifiSufficientDurationAfterUserSelectionMilliseconds
) - อุปกรณ์เชื่อมต่อกับการเชื่อมต่อการลงชื่อสมัครใช้ออนไลน์ (OSU)
ตรงตามข้อกำหนดทั้งหมดต่อไปนี้:
- RSSI อยู่เหนือเกณฑ์ RSSI ที่จำเป็นหรือมีการรับส่งข้อมูลเพียงพอผ่านการเชื่อมต่อ (ดู การสแกนหน้าจอ สำหรับ RSSI และเกณฑ์การรับส่งข้อมูล)
- เครือข่ายได้รับการตรวจสอบแล้ว (เชื่อมต่อกับอินเทอร์เน็ต) หรือได้รับการอนุมัติโดยผู้ใช้สำหรับการใช้งานโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต
- เครือข่ายไม่มีการตรวจสอบ
หากเครือข่าย ดีพอที่จะข้ามการเลือกเครือข่าย จะไม่มีการดำเนินการใดๆ เพิ่มเติม
หากเครือข่าย Wi-Fi ที่เชื่อมต่อไม่ดีพอหรืออุปกรณ์ไม่ได้เชื่อมต่อกับเครือข่าย เฟรมเวิร์กจะเรียก ผู้เสนอชื่อเครือข่าย เพื่อสร้างรายชื่อเครือข่าย Wi-Fi ที่เป็นตัวเลือกเพื่อเชื่อมต่อตามผลการสแกนที่ กรอง ผู้เสนอชื่อเครือข่ายค้นหาการกำหนดค่า Wi-Fi ที่มีอยู่หรือสร้างการกำหนดค่าใหม่สำหรับเครือข่ายตัวเลือก
ผลการสแกนถูก กรอง เพื่อลบ BSSID ที่มี RSSI ด้านล่างรายการ RSSI (กำหนดค่าได้โดยใช้
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
และconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
) นอกจากนี้ BSSID ที่ถูกบล็อกจะถูกกรอง BSSID สามารถบล็อกได้โดยอิงจากความล้มเหลวในการเชื่อมต่อซ้ำ การยกเลิกการเชื่อมต่อบ่อยครั้ง และคำขอที่ชัดเจนจาก AP ที่จะไม่พยายามเชื่อมโยงในช่วงระยะเวลาหนึ่ง (MBO-OCE) การบล็อก BSSID มีการอธิบายไว้ด้านล่างใน การบล็อก SSID และ BSSIDเมื่ออุปกรณ์เคลื่อนที่อย่างรวดเร็ว ผลการสแกนจะถูกกรองเพิ่มเติมเพื่อลบ BSSID ที่ RSSI เปลี่ยนแปลงอย่างรวดเร็ว (บ่งชี้ว่าพวกเขาไม่ได้เคลื่อนที่ไปพร้อมกับอุปกรณ์) การปรับให้เหมาะสมนี้กำหนดค่าได้โดยใช้
config_wifiHighMovementNetworkSelectionOptimizationEnabled
(เปิด/ปิดการปรับให้เหมาะสม) และconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMs
และconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta
overlays ที่แยกจากกัน ซึ่งส่งผลให้มีการกำหนดค่าความต้องการด้านความเสถียรที่เพียงพอในการสแกน RS แยกกัน
กรอบงานเรียกใช้ผู้ให้คะแนนของ ผู้สมัคร เพื่อสร้างคะแนนสำหรับตัวระบุชุดบริการ (SSID) แต่ละรายการ ตัวเลือก SSID สามารถรวมตัวระบุชุดบริการพื้นฐาน (BSSID) ได้หลายตัว (สร้างโดยผู้เสนอชื่อเครือข่าย) ผู้สมัครที่มีคะแนนสูงสุดคือ ผู้สมัครที่ชนะ
เฟรมเวิร์กดำเนินการอัลกอริทึม ตัวเลือกการเชื่อมต่อผู้ใช้ ซึ่งอาจทำให้เครือข่ายที่ผู้ใช้เลือกเป็นผู้สมัครที่ชนะรายใหม่ แทนที่จะใช้ผู้สมัครที่ชนะจากผู้ให้คะแนนของผู้สมัคร
กรอบงานกำหนดว่าผู้สมัครที่ชนะตรงกับเครือข่ายที่เชื่อมต่ออยู่หรือไม่ ในการพิจารณาการแข่งขัน จะต้องมีคุณสมบัติตรงตามข้อใดข้อหนึ่งต่อไปนี้:
- ผู้สมัครที่ชนะและเครือข่าย Wi-Fi ที่เชื่อมต่อมี BSSID เดียวกัน
- หากมีการโรมมิ่งเฟิร์มแวร์ (รวมถึงความสามารถบัญชีดำของ BSSID) ผู้สมัครที่ชนะและเครือข่ายที่เชื่อมต่อจะมี SSID และประเภทความปลอดภัยเหมือนกัน
หากผู้สมัครที่ชนะตรงกับเครือข่ายที่เชื่อมต่ออยู่ จะไม่มีการดำเนินการใดๆ เพิ่มเติม หากผู้สมัครที่ชนะไม่ตรงกับเครือข่าย อุปกรณ์จะเชื่อมโยงกับผู้สมัครที่ชนะ
โปรดทราบว่าการเชื่อมต่อเครือข่ายอัตโนมัติถูกปิดใช้งานในขณะที่แอปใช้ Wi-Fi Network Request API ซึ่งจะแทนที่ระบบและสร้าง LAN ที่ไม่มีอินเทอร์เน็ต ยกเว้นในอุปกรณ์ที่รองรับสถานีคู่พร้อมกัน
การประเมินเครือข่ายที่เชื่อมต่อ
กรอบงานหรือเฟิร์มแวร์ของ Android จะประเมินคุณภาพของเครือข่ายที่เชื่อมต่อเป็นระยะ ส่วนนี้อธิบายวิธีประเมินเครือข่ายที่เชื่อมต่อเมื่อเปิดหรือปิดหน้าจอ
การประเมินนี้ดำเนินการเพิ่มเติมจากการ เลือกเครือข่าย ที่กล่าวถึงข้างต้น
เปิดหน้าจอ
กรอบงาน Android ประเมินเครือข่ายที่เชื่อมต่อด้วยวิธีต่อไปนี้:
- บริการ Wi-Fi จะสำรวจ RSSI และสถิติชั้นลิงก์ทุกๆ 3 วินาที (กำหนดค่าได้โดยใช้การซ้อนทับ
config_wifiPollRssiIntervalMilliseconds
) - บริการ Wi-Fi จะคำนวณคะแนนที่เชื่อมต่อตามสถิติ RSSI และลิงค์เลเยอร์
- บริการ Wi-Fi จะส่งคะแนนไปยังบริการการเชื่อมต่อ ซึ่งใช้คะแนนเพื่อกำหนดว่าจะเชื่อมต่อกับเครือข่าย Wi-Fi หรือเครือข่ายประเภทอื่นที่มีให้บริการ เช่น เครือข่ายเซลลูลาร์
ปิดหน้าจอ
กรอบงานไม่ได้เริ่มการประเมินบนเครือข่ายที่เชื่อมต่อ แต่กระบวนการ เลือกเครือข่าย อาจยังคงเกิดขึ้นหากส่วนประกอบอื่นเริ่มต้นการสแกน (เช่น บริการระบุตำแหน่ง) เฟิร์มแวร์จะประเมินคุณภาพเครือข่าย และหากคุณภาพเครือข่ายไม่ดี เฟิร์มแวร์อาจข้ามเครือข่ายหรือ (ในที่สุด) แยกออกจากเครือข่ายและปลุกโฮสต์
การสแกนการเชื่อมต่อ
การสแกนจะดำเนินการโดยอัตโนมัติโดยขึ้นอยู่กับว่าอุปกรณ์เปิดหน้าจออยู่หรือไม่ ปิดหน้าจอและเชื่อมต่อกับ Wi-Fi หรือปิดหน้าจอและไม่ได้เชื่อมต่อกับ Wi-Fi
เปิดหน้าจอ
เฟรมเวิร์กจะทริกเกอร์การตัดสินใจสแกนในช่วงเวลาที่เพิ่มขึ้นเมื่อเปิดหน้าจอ ช่วงการตัดสินใจสแกนได้รับการกำหนดค่าด้วยการซ้อนทับ config_wifiDisconnectedScanIntervalScheduleSec
, config_wifiConnectedScanIntervalScheduleSec
และ config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec
(ซึ่งเป็นอาร์เรย์ของจำนวนเต็ม) ตามค่าเริ่มต้น การสแกนจะเกิดขึ้นโดยใช้ช่วงเวลาการถอยกลับแบบเอ็กซ์โพเนนเชียลที่ 20, 40, 80 และ 160 วินาที โดยอาจทำการสแกนครั้งต่อๆ ไปในช่วงเวลา 160 วินาที (เป็นค่าเริ่มต้นของการซ้อนทับด้านบน)
ช่วงเวลาการสแกนแบ็คออฟแบบเอ็กซ์โพเนนเชียลจะถูกรีเซ็ตและรีสตาร์ทที่ 20 วินาทีเมื่อใดก็ตามที่สถานะของหน้าจอเปลี่ยนไป กล่าวคือ เมื่อหน้าจอเปิดหรือปิด
(Android 13+) หากจำเป็นต้องใช้ช่วงเวลาการสแกนที่แตกต่างกันขณะรันไทม์ แอปที่มีสิทธิ์ของ OEM สามารถเรียก API ของ WifiManager#setScreenOnScanSchedule(screenOnScanSchedule)
เพื่อกำหนดตารางเวลาการสแกนบนหน้าจอแบบไดนามิก
การตัดสินใจว่าจะดำเนินการหรือข้ามการสแกนนั้นขึ้นอยู่กับว่าการเชื่อมต่อเครือข่ายปัจจุบัน ดีพอที่จะข้ามการสแกน หรือไม่ การเชื่อมต่อ ดีพอที่จะข้ามการสแกน ได้หากตรงตามข้อกำหนดใดๆ ต่อไปนี้:
- อุปกรณ์เชื่อมต่อกับการเชื่อมต่อการลงชื่อสมัครใช้ออนไลน์ (OSU)
- ปริมาณการใช้ที่เพียงพอกำลังไหลผ่านการเชื่อมต่อ (ดูเกณฑ์การรับส่งข้อมูลด้านล่าง)
- RSSI อยู่เหนือเกณฑ์ RSSI ที่ต้องการ (ดูเกณฑ์ RSSI ด้านล่าง) และ การเลือกเครือข่ายดำเนินการเมื่อเร็วๆ นี้ (10 นาทีโดยค่าเริ่มต้น แต่กำหนดค่าได้โดยใช้การซ้อนทับ
config_wifiConnectedHighRssiScanMinimumWindowSizeSec
) และ เครือข่ายใดเครือข่ายหนึ่งได้รับการตรวจสอบแล้ว (เชื่อมต่อกับอินเทอร์เน็ต) หรือผู้ใช้ -ได้รับการอนุมัติให้ใช้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต
RSSI และเกณฑ์การรับส่งข้อมูลคือ:
- RSSI อยู่เหนือ -73 dBm สำหรับแบนด์ 2.4 GHz, กำหนดค่าด้วยโอเวอร์
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
หรือ -70 dBm สำหรับแบนconfig_wifiFrameworkScoreLowRssiThreshold6ghz
5 GHz และ 6 GHz, กำหนดค่าด้วยconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHz
- การรับส่งข้อมูล (ส่งหรือรับ) สูงกว่า 16 แพ็กเก็ตต่อวินาที (pps) ที่กำหนดค่าด้วยโอเวอร์
config_wifiFrameworkMinPacketPerSecondActiveTraffic
เมื่อเชื่อมต่ออุปกรณ์และหน้าจอเปิดอยู่ ผู้บันทึกที่เชื่อมต่อจะตรวจสอบคุณภาพ Wi-Fi เป็นระยะโดยดูจากสัญญาณ เช่น RSSI และจำนวนแพ็กเก็ตที่ถ่ายโอน หากคุณภาพของ Wi-Fi ถูกกำหนดว่าไม่ดี (ตามที่ระบุด้านล่าง) และอุปกรณ์รองรับสถานีคู่พร้อมกัน การสแกนจะถูกทริกเกอร์ สามารถใช้โอเวอร์ config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
เพื่อกำหนดค่าเกณฑ์คะแนนที่ทริกเกอร์การสแกนได้ สามารถใช้โอเวอร์ config_wifiLowConnectedScoreScanPeriodSeconds
เพื่อกำหนดค่าช่วงเวลาของการสแกนเหล่านี้ได้
ปิดหน้าจอและเชื่อมต่อกับ Wi-Fi
เมื่อหน้าจอปิดอยู่และอุปกรณ์เชื่อมต่อกับเครือข่าย Wi-Fi เฟิร์มแวร์ (Wi-Fi SoC) จะทำการสแกนข้ามเขต เฟรมเวิร์กจะไม่ทำการสแกนใดๆ เมื่อปิดหน้าจอ
ปิดหน้าจอและไม่ได้เชื่อมต่อกับ Wi-Fi (สถานะตัดการเชื่อมต่อ)
เมื่อหน้าจอดับและ Wi-Fi ถูกตัดการเชื่อมต่อ เฟิร์มแวร์จะทำการสแกน PNO เพื่อหา SSID กรอบงานกำหนดค่าเฟิร์มแวร์ด้วยรายการ SSID ที่จะสแกนหาและรายการช่องที่จะสแกน หากพบ SSID ที่กำหนดค่าไว้ เฟิร์มแวร์จะปลุกเฟรมเวิร์ก
กรอบงานยังกำหนดค่าช่วงเวลาที่เฟิร์มแวร์จะทำการสแกน PNO โดยใช้สถานะการเคลื่อนย้ายอุปกรณ์เพื่อเลือกช่วงเวลาการสแกนที่แตกต่างกัน ในสถานะการเคลื่อนไหวต่ำ (อุปกรณ์อยู่กับที่) ช่วงเวลา 60 วินาทีสำหรับการสแกนสามครั้งแรก (ควบคุมโดยโอเวอร์ config_wifiStationaryPnoScanIntervalMillis
) และ 180 วินาที (ตัวคูณ 3x คงที่ของการซ้อนทับ) สำหรับการสแกนครั้งต่อไป ในสถานะความคล่องตัวสูง ช่วงเวลาคือ 20 วินาทีสำหรับการสแกนสามครั้งแรก (ควบคุมโดยโอเวอร์ config_wifiMovingPnoScanIntervalMillis
) และ 60 วินาที (ตัวคูณคงที่ 3x ของการซ้อนทับ) วินาทีสำหรับการสแกนครั้งต่อไป
ผู้เสนอชื่อเครือข่าย
ผู้เสนอชื่อเครือข่ายค้นหาหรือสร้างการกำหนดค่า ( WifiConfiguration
) สำหรับเครือข่ายที่:
- พร้อมใช้งานในปัจจุบัน (ตามผลการสแกน) หรือเครือข่ายที่เชื่อมต่ออยู่ในปัจจุบัน (ซึ่งบางครั้งอาจหายไปจากผลการสแกนที่ไม่สม่ำเสมอ)
- มี RSSI น้อยที่สุด RSSI ขั้นต่ำคือ -80 dBm สำหรับแบนด์ 2.4
config_wifiFrameworkScoreEntryRssiThreshold6ghz
และconfig_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
สำหรับแบนด์ 5 GHz และ 6 GHz กำหนดค่าได้โดยใช้ - ไม่ถูกบล็อก เช่น เนื่องจากการเชื่อมต่อล้มเหลวครั้งก่อน
- เครือข่ายไม่ได้ระบุว่าใช้ไม่ได้ (เช่น ใช้ MBO/OCE)
- สามารถเชื่อมโยงกับการใช้ข้อมูลประจำตัวที่มีอยู่ในอุปกรณ์
มีการใช้ผู้เสนอชื่อเครือข่ายต่อไปนี้:
- ผู้เสนอชื่อเครือข่ายที่บันทึกไว้: ประเมินเครือข่ายที่บันทึกไว้ทั้งหมด (รวมถึงการสมัครสมาชิก Passpoint ที่บันทึกไว้)
- ผู้เสนอชื่อเครือข่ายที่แนะนำ: ประเมินเครือข่ายทั้งหมดที่มีให้โดยแอพโดยใช้ Suggestion API (รวมถึงการสมัครสมาชิก Passpoint ที่แนะนำ)
- ผู้เสนอชื่อเครือข่ายภายนอก: กลไก OEM เพื่อให้ตัวเลือกการเชื่อมต่อเครือข่ายกับอุปกรณ์ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ ผู้ให้บริการการให้คะแนนเครือข่ายภายนอก
ผู้ทำประตู
ผู้ทำคะแนนของผู้สมัครประเมินและให้คะแนนสำหรับผู้สมัครแต่ละคน คะแนนสำหรับ ThroughputScorer
(ตัวทำคะแนนเริ่มต้น) อิงจากสิ่งต่อไปนี้:
- คะแนนฐานคำนวณตาม
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
โดยที่config_wifi_framework_wifi_score_low_rssi_threshold_5GHz
ต่อยอดที่config_wifiFrameworkScoreLowRssiThreshold6ghz
dBm สำหรับย่านความถี่ 2.4 GHz หรือ -70 dBm สำหรับย่านความถี่ 5 GHz และ 6 GHz (กำหนดค่าด้วย - การเพิ่มคะแนนจะคำนวณตามการประมาณการปริมาณงานที่ได้จากเทคโนโลยี ความถี่ของช่องสัญญาณ แบนด์วิดท์ RSSI เงื่อนไขของช่อง จำนวนสตรีมเชิงพื้นที่สูงสุด และพารามิเตอร์อื่นๆ การเพิ่มคะแนนสามารถกำหนดค่าได้โดยใช้การซ้อนทับ
config_wifiFrameworkThroughputBonusNumerator
และconfig_wifiFrameworkThroughputBonusDenominator
และจำกัดไว้ที่ค่าสูงสุดที่ระบุโดยใช้การซ้อนทับconfig_wifiFrameworkThroughputBonusLimit
- เครือข่ายตัวเลือกที่ผู้ใช้หรือแอปเลือกเมื่อเร็วๆ นี้ได้รับคะแนนเพิ่มขึ้นอย่างมากสำหรับระยะเวลาที่กำหนดค่าได้โดยใช้โอเวอร์
config_wifiFrameworkLastSelectionMinutes
(สำหรับระยะเวลาดังกล่าว เครือข่ายรับประกันว่าจะเลือกผ่านเครือข่ายที่ไม่ได้เลือกโดยผู้ใช้) - ผู้สมัครที่ตรงกับเครือข่ายปัจจุบันจะได้รับการเพิ่มคะแนนที่กำหนดค่าโดย
config_wifiFrameworkCurrentNetworkBonusMin
และconfig_wifiFrameworkCurrentNetworkBonusPercent
ซ้อนทับ (จะได้รับโบนัสพิเศษตามเปอร์เซ็นต์ของ RSSI และคะแนนตามปริมาณงาน จนถึงค่าต่ำสุดที่กำหนดค่าได้) - เครือข่ายที่ปลอดภัยมีคะแนนสูงกว่าเครือข่ายแบบเปิด โบนัสได้รับการกำหนดค่าโดยใช้โอเวอร์
config_wifiFrameworkSecureNetworkBonus
- เครือข่ายที่ไม่มีการตรวจสอบ (ฟรี) จะได้รับคะแนนสูงกว่าเครือข่ายที่มีการคิดค่าบริการตามปริมาณข้อมูล โบนัสได้รับการกำหนดค่าโดยใช้โอเวอร์
config_wifiFrameworkUnmeteredNetworkBonus
- เครือข่ายที่บันทึกไว้มีคะแนนสูงกว่าเครือข่ายที่แนะนำโดยใช้ Suggestion API โบนัสได้รับการกำหนดค่าโดยใช้โอเวอร์
config_wifiFrameworkSavedNetworkBonus
- เครือข่ายที่ไม่น่าเชื่อถือ (ซึ่งสามารถขอเป็นส่วนหนึ่งของ Suggestion API) ได้คะแนนต่ำกว่าเครือข่ายอื่นๆ
- เครือข่ายที่เคยตรวจพบว่าไม่มีอินเทอร์เน็ตจะได้รับคะแนนเป็น 0 หากอุปกรณ์เชื่อมต่อกับเครือข่ายอื่นที่มีการเข้าถึงอินเทอร์เน็ตอยู่
โบนัสเริ่มต้นสำหรับการบันทึกเทียบกับข้อเสนอแนะและไม่ถูกตรวจสอบกับมิเตอร์ (นั่นคือค่าโอเวอร์เลย์เริ่มต้น) จะสร้างลำดับความสำคัญที่เข้มงวดสำหรับการบันทึก แนะนำ ตรวจสอบและไม่คิดค่าบริการ:
- บันทึกเครือข่ายที่ไม่มีการตรวจสอบ
- แนะนำเครือข่ายที่ไม่มีการตรวจสอบ
- เครือข่ายมิเตอร์ที่บันทึกไว้
- แนะนำเครือข่ายมิเตอร์
ซึ่งหมายความว่าระบบจะเลือกเครือข่ายที่ไม่มีการตรวจสอบ (ฟรี) ที่บันทึกไว้ก่อนเครือข่ายที่มีการตรวจวัด (แบบชำระเงิน) ที่บันทึกไว้เสมอ โบนัสคะแนนที่เพิ่งเลือก (โดยผู้ใช้หรือแอป) อาจแทนที่ลำดับความสำคัญที่เข้มงวดนั้น
กรอบงานสามารถติดตั้งผู้ให้คะแนนของผู้สมัครได้หลายราย แต่สามารถเปิดใช้งานได้ครั้งละหนึ่งรายการเท่านั้น ผู้ให้คะแนนอื่นๆ สามารถใช้สำหรับเมตริก (เพื่อตรวจสอบอัลกอริทึมทางเลือก) ใน Android 11 ผู้ให้คะแนนเริ่มต้นคือ ThroughputScorer
การบล็อก SSID และ BSSID
เฟรมเวิร์กอาจบล็อก SSID และ/หรือ BSSID นั่นคือไม่พิจารณาสำหรับการเชื่อมต่อชั่วคราวหรือถาวร
การบล็อก BSSID
การบล็อก BSSID ทำงานโดยเก็บตัวนับความล้มเหลวไว้สองตัว ตัวนับความล้มเหลวอย่างต่อเนื่อง และ ตัวนับสตรีค ตามประเภทความล้มเหลวเฉพาะ (ดูด้านล่างสำหรับรายการประเภทความล้มเหลว) เมื่อเกิดความล้มเหลว:
- ตัวนับสำหรับประเภทความล้มเหลวที่สอดคล้องกันจะเพิ่มขึ้น
- หากถึงขีดจำกัดความล้มเหลวสำหรับประเภทความล้มเหลวนั้น:
- BSSID ถูกบล็อก
- ตัวนับสตรีคสำหรับความล้มเหลวจะเพิ่มขึ้น
ระยะเวลาที่ BSSID ถูกบล็อกสำหรับการเริ่มต้นที่ค่าพื้นฐาน (กำหนดได้) (กำหนดโดย config_wifiBssidBlocklistMonitorBaseBlockDurationMs
หรือ config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
ซ้อนทับ ขึ้นอยู่กับ RSSI) และ Streakspecified เพิ่มขึ้นเป็น config_wifiBssidBlocklistMonitorFailureStreakCap
ที่กำหนดค่าได้ ระยะเวลาจะเพิ่มขึ้นหากความล้มเหลวเกิดขึ้นอย่างต่อเนื่องใน BSSID เดียวกัน ระยะเวลาคือระยะเวลาพื้นฐานที่เพิ่มขึ้นแบบทวีคูณโดยสตรีคความล้มเหลว นั่นคือ สตรีคความล้มเหลว 2 ครั้ง หมายถึงระยะเวลาบล็อกฐาน 4x
เกณฑ์สำหรับการบล็อก BSSID ขึ้นอยู่กับสาเหตุของความล้มเหลว และแต่ละรายการสามารถปรับแต่งได้โดยใช้การซ้อนทับ:
- AP ปฏิเสธการเชื่อมโยงโดยใช้ MBO/OCE Unable to handle new STA code:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
- การตรวจสอบอินเทอร์เน็ตผ่านเครือข่ายนี้ล้มเหลว:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
- รหัสความล้มเหลวในการตรวจสอบรหัสผ่านไม่ถูกต้อง:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold
- รหัสความล้มเหลวในการตรวจสอบความล้มเหลวของ EAP สำหรับเครือข่าย EAP:
config_wifiBssidBlocklistMonitorEapFailureThreshold
- การปฏิเสธการเชื่อมโยง การปฏิเสธการเชื่อมโยงทั่วไปอื่นๆ:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold
- การหมดเวลาของการเชื่อมโยง:
config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold
- การตรวจสอบล้มเหลว ความล้มเหลวในการพิสูจน์ตัวตนทั่วไปอื่นๆ:
config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold
- ความล้มเหลวของ DHCP ความล้มเหลวในการจัดเตรียม DHCP:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold
- การตัดการเชื่อมต่อที่ผิดปกติ อุปกรณ์ได้ตัดการเชื่อมต่อจากเครือข่ายภายในระยะเวลาอันสั้นหลังจากเชื่อมต่อ:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold
กรอบเวลาสามารถกำหนดค่าได้ด้วยconfig_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs
เงื่อนไขการล้างรายการบล็อก BSSID
BSSID จะถูกล้างออกจากรายการที่บล็อกเมื่อ:
- Wi-Fi ถูกสลับ: BSSID ทั้งหมดจะถูกลบออกจากรายการที่บล็อก
- ผู้ใช้แตะเครือข่ายในตัวเลือก Wi-Fi: BSSID ทั้งหมดของเครือข่ายที่ผู้ใช้เลือกจะถูกลบออกจากรายการบล็อก
- หมดเวลา: BSSID จะถูกลบออกจากรายการบล็อกเมื่อถึงระยะเวลาบล็อก
- รีบูต: รายการที่บล็อกทั้งหมดจะถูกล้าง
- ลบเครือข่ายแล้ว: BSSID ทั้งหมดที่เชื่อมโยงกับเครือข่ายนี้จะถูกลบออกจากรายการที่บล็อก
เงื่อนไขการรีเซ็ตตัวนับความล้มเหลวและสตรีค:
- รีบูต: รีเซ็ตสำหรับ BSSID ทั้งหมด
- ลบเครือข่าย: รีเซ็ตสำหรับ BSSID ที่เชื่อมโยงกับเครือข่าย
สำเร็จในการเชื่อมต่อ L2: รีเซ็ตสำหรับรหัสข้อผิดพลาดต่อไปนี้
-
REASON_AP_UNABLE_TO_HANDLE_NEW_STA
-
REASON_WRONG_PASSWORD
-
REASON_EAP_FAILURE
-
REASON_ASSOCIATION_REJECTION
-
REASON_ASSOCIATION_TIMEOUT
-
REASON_AUTHENTICATION_FAILURE
-
REASON_ABNORMAL_DISCONNECT
(ล้างแบบมีเงื่อนไขก็ต่อเมื่อครั้งสุดท้ายที่อุปกรณ์เชื่อมต่อกับ BSSID นี้นานกว่า 3 ชั่วโมงที่แล้ว) -
REASON_NONLOCAL_DISCONNECT_CONNECTING
-
ความสำเร็จในการตรวจสอบเครือข่าย: รีเซ็ตสำหรับรหัสข้อผิดพลาดต่อไปนี้
-
REASON_NETWORK_VALIDATION_FAILURE
-
ความสำเร็จในการเตรียมใช้งาน DHCP: รีเซ็ตรหัสข้อผิดพลาดต่อไปนี้
-
REASON_DHCP_FAILURE
-
การปิดกั้น SSID
การบล็อก SSID ทำงานเหมือนกับการบล็อก BSSID ตัวนับความล้มเหลวต่อประเภทความล้มเหลวต่อเครือข่ายจะเพิ่มขึ้นเมื่อเกิดความล้มเหลวในการเชื่อมต่อ (ประเภทนั้น) เมื่อจำนวนความล้มเหลวของประเภทใดประเภทหนึ่งเกินขีดจำกัด SSID จะถูกบล็อกอย่างถาวรหรือชั่วคราวตามการกำหนดค่า การกำหนดค่าสำหรับความล้มเหลวแต่ละประเภทมีการเข้ารหัสใน WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS
และสรุปได้ด้านล่าง
* สำหรับเครือข่ายที่ปิดใช้งานชั่วคราว ระยะเวลาการปิดใช้งานจะเปลี่ยนแปลงแบบไดนามิกตามจำนวนความล้มเหลวในการเชื่อมต่อติดต่อกันที่พบในเครือข่าย หลังจากที่เครือข่ายล้มเหลวในการเชื่อมต่อติดต่อกันห้าครั้ง ความล้มเหลวที่ตามมาแต่ละครั้งจะส่งผลให้ระยะเวลาการปิดใช้งานยาวนานเป็นสองเท่าของระยะเวลาก่อนหน้า ตัวอย่างเช่น เครือข่ายที่มีความล้มเหลวติดต่อกันห้าครั้งจะถูกปิดใช้งานเป็นเวลา 5 นาที จากนั้น 10 นาทีสำหรับความล้มเหลวครั้งที่หก 20 นาทีสำหรับความล้มเหลวที่เจ็ด และอื่นๆ จนถึงขีดจำกัดสูงสุด 18 ชั่วโมง | ||||
รหัสความล้มเหลว | คำอธิบาย | เกณฑ์ | ระยะเวลาปิดฐาน* | ปิดการใช้งานประเภท |
---|---|---|---|---|
DISABLED_DHCP_FAILURE | ความล้มเหลวในการจัดเตรียม DHCP | 5 | 5 นาที | ชั่วคราว |
DISABLED_NO_INTERNET_TEMPORARY | การตรวจสอบเครือข่ายล้มเหลว แต่ผู้ใช้ระบุว่าต้องการเชื่อมต่อกับเครือข่ายนี้ต่อไปในอนาคต | 1 | 10 นาที | ชั่วคราว |
DISABLED_AUTHENTICATION_NO_CREDENTIALS | ผู้ร้องขอไม่มีข้อมูลประจำตัวในการเชื่อมต่อกับเครือข่าย | 1 | NA | ถาวร |
DISABLED_NO_INTERNET_PERMANENT | ค่าเริ่มต้นสำหรับความล้มเหลวในการตรวจสอบเครือข่าย | 1 | NA | ถาวร |
DISABLED_BY_WIFI_MANAGER | เลิกใช้แล้วและไม่ได้ใช้ | 1 | NA | ถาวร |
DISABLED_BY_WRONG_PASSWORD | รหัสผ่านไม่ถูกต้อง และเครือข่ายนี้ไม่เคยเชื่อมต่อกับ . สำเร็จ | 1 | NA | ถาวร |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION | ความล้มเหลว EAP ที่ไม่ได้สมัครซิมการ์ด | 1 | NA | ถาวร |
DISABLED_ASSOCIATION_REJECTION | ความล้มเหลวในการปฏิเสธสมาคม | 5 | 5 นาที | ชั่วคราว |
DISABLED_AUTHENTICATION_FAILURE | ความล้มเหลวในการตรวจสอบสิทธิ์อื่นๆ (นั่นคือ ไม่ใช่รหัสผ่านผิดหรือความล้มเหลว EAP) | 5 | 5 นาที | ชั่วคราว |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR | ความล้มเหลว EAP เฉพาะผู้ให้บริการ (ส่วนตัว) | 1 | NA | ถาวร |
DISABLED_NETWORK_NOT_FOUND | ผู้ร้องขอไม่พบเครือข่ายในผลการสแกนที่ตรงกับเครือข่ายที่ร้องขอโดยเฟรมเวิร์กสำหรับการเชื่อมต่อ (รวมถึงความสามารถของเครือข่าย) | 2 | 5 นาที | ชั่วคราว |
DISABLED_CONSECUTIVE_FAILURES | เครือข่ายล้มเหลวในการเชื่อมต่อห้าครั้งขึ้นไปติดต่อกัน ประเภทความล้มเหลวสำหรับความล้มเหลวเหล่านี้รวมถึงแต่ไม่จำกัดเฉพาะประเภทความล้มเหลวที่ระบุไว้ในตารางนี้ | 5 | 5 นาที | ชั่วคราว |
เครือข่ายที่ปิดใช้งานชั่วคราวจะเปิดใช้งานอีกครั้งเมื่อ:
- หมดเวลาปิดการใช้งานแล้ว
- ผู้ใช้เลือกเครือข่ายที่จะเชื่อมต่อด้วยตนเอง
- ผู้ใช้สลับ Wi-Fi
- ระบบจะรีบูต
- เครือข่ายถูกปิดใช้งานที่ RSSI ที่ต่ำมาก แต่ภายหลังตรวจพบเครือข่ายอีกครั้งที่ RSSI ระดับปานกลางหรือสูงกว่า
เครือข่ายที่ปิดใช้งานอย่างถาวรจะเปิดใช้งานอีกครั้งเมื่อ:
- ผู้ใช้เลือกเครือข่ายที่จะเชื่อมต่อด้วยตนเอง
ตัวนับความล้มเหลวสำหรับเครือข่ายจะถูกรีเซ็ตเมื่อ:
- เครือข่ายจะถูกลบออก
- อุปกรณ์เชื่อมต่อกับเครือข่ายสำเร็จแล้ว
- เครือข่ายได้รับการเปิดใช้งานอีกครั้งหลังจากหมดเวลาการปิดใช้งาน
- ผู้ใช้เลือกเครือข่ายที่จะเชื่อมต่อด้วยตนเอง
- ระบบจะรีบูต
บัตรคะแนน
บัตรคะแนนที่เปิดตัวใน Android 10 บันทึกสถิติบนอุปกรณ์เกี่ยวกับ BSSID บัตรคะแนนจะคงอยู่โดยใช้บริการ IpMemoryStore
บัตรคะแนนไม่ได้ใช้ในการเลือกเครือข่าย Android 11
ตัวเลือกการเชื่อมต่อผู้ใช้
Android มีอัลกอริธึมตัวเลือกการเชื่อมต่อผู้ใช้ที่ช่วยให้กระบวนการเลือกชอบเครือข่าย Wi-Fi ที่ผู้ใช้เชื่อมต่ออย่างชัดเจน เช่น เครือข่ายในบ้าน ผู้ใช้อาจชอบเครือข่ายดังกล่าวมากกว่าเครือข่ายสาธารณะ แม้ว่าประสิทธิภาพจะต่ำกว่าเครือข่ายสาธารณะ เนื่องจากพวกเขาให้บริการเพิ่มเติม เช่น ความสามารถในการควบคุมอุปกรณ์ภายในบ้าน
ค่ากำหนดของผู้ใช้สำหรับเครือข่ายถูกจับโดยทำเครื่องหมายการกำหนดค่า Wi-Fi ที่มองเห็นได้ทั้งหมดและความแรงของสัญญาณในขณะที่ผู้ใช้เลือกเครือข่าย หากหนึ่งในการกำหนดค่า Wi-Fi ที่ทำเครื่องหมายไว้ถูกเลือกในระหว่างกระบวนการเลือกอัตโนมัติและมีเครือข่ายที่ผู้ใช้เลือก อัลกอริทึมตัวเลือกการเชื่อมต่อผู้ใช้จะแทนที่การเลือกด้วยเครือข่ายที่ผู้ใช้เลือกหากตรงตามเงื่อนไขต่อไปนี้:
- ผู้ใช้เชื่อมต่อเครือข่ายตัวเลือกมีการเข้าถึงอินเทอร์เน็ตครั้งสุดท้ายที่ใช้
- ตัวเลือกการเชื่อมต่อผู้ใช้มีความแรงของสัญญาณที่ไม่เลวร้ายไปกว่าเมื่อเลือกไว้แต่เดิมโดยมีขอบข้อผิดพลาด ระยะขอบข้อผิดพลาดนี้สามารถกำหนดค่าได้โดยใช้การซ้อนทับ
config_wifiEstimateRssiErrorMarginDb
ผู้ใช้เชื่อมต่อเครือข่ายตัวเลือกยังคงมีอยู่หลังจากรีบูต ตัวเลือกการเชื่อมต่อผู้ใช้ใช้ได้กับเครือข่ายที่บันทึกไว้ เครือข่าย Passpoint และเครือข่ายคำแนะนำ
สถานีคู่พร้อมกัน
ส่วนนี้อธิบายการเลือกเครือข่าย Wi-Fi เมื่ออุปกรณ์รองรับการเชื่อมต่อกับเครือข่าย Wi-Fi สองเครือข่ายพร้อมกัน
ทำก่อนพัก
หากเปิดใช้งานฟังก์ชัน make-before-break อุปกรณ์จะพยายามเชื่อมต่อกับเครือข่ายใหม่ก่อนที่จะยกเลิกการเชื่อมต่อจากเครือข่ายเก่า โฟลว์ make-before-break ใช้อัลกอริธึมการเลือกเครือข่ายเดียวกันกับการสลับเครือข่ายแบบแบ่งก่อนทำ (ซึ่งคือเมื่ออุปกรณ์ยกเลิกการเชื่อมต่อจากเครือข่ายเก่าก่อนที่จะเชื่อมต่อกับเครือข่ายใหม่) หากอัลกอริธึมการเลือกเครือข่ายเลือกเครือข่ายที่ไม่สามารถสลับโดยใช้ make-before-make อุปกรณ์จะกลับไปสู่สถานะ break-before-make โดยอัตโนมัติ
การเชื่อมต่ออินเทอร์เน็ตที่ถูก จำกัด และอินเทอร์เน็ต
หากเปิดใช้งานฟังก์ชัน การเชื่อมต่ออินเทอร์เน็ตแบบจำกัดและเชื่อมต่ออินเทอร์เน็ตพร้อมกัน อุปกรณ์สามารถเชื่อมต่อกับเครือข่าย Wi-Fi แบบจำกัดสำรองที่มีให้เฉพาะแอพบางตัวที่กำหนดค่าโดยผู้ผลิตอุปกรณ์ คำแนะนำสำหรับผู้ผลิตอุปกรณ์ในการกำหนดค่านี้อยู่ใน การเชื่อมต่ออินเทอร์เน็ตแบบจำกัดและแบบพร้อมกัน
เมื่ออัลกอริธึมการเลือกเครือข่ายตรวจพบผลการสแกนที่ตรงกับคำแนะนำของ OEM ที่จ่าย/ส่วนตัว อัลกอริธึมจะเชื่อมต่อโดยอัตโนมัติเป็นเครือข่ายที่สอง การเลือกเครือข่ายสำหรับเครือข่าย Wi-Fi หลัก (ซึ่งให้การเชื่อมต่ออินเทอร์เน็ตกับแอปทั่วไป) เกิดขึ้นพร้อมกันตามปกติ
คำถามที่พบบ่อย (FAQ)
เครือข่ายที่ปลอดภัยมีความสำคัญเหนือเครือข่ายแบบเปิดเสมอหรือไม่
ไม่ได้ บันทึกเทียบกับที่แนะนำและตามมิเตอร์กับไม่มีการตรวจสอบเป็นหมวดหมู่หลักในการประเมินเครือข่าย ภายในแต่ละหมวดหมู่ เครือข่ายที่ปลอดภัยมีความสำคัญเหนือเครือข่ายแบบเปิด แต่จะมีน้ำหนักที่สูงกว่ามากสำหรับคุณภาพของการเชื่อมต่อ
เหตุผลก็คือการรักษาความปลอดภัยข้อมูลผู้ใช้จริงนั้นมาจากการเข้ารหัสแบบ end-to-end (เช่น TLS) เครือข่ายที่ปลอดภัยจะเข้ารหัสเฉพาะช่วงแรกของการสื่อสาร และสำหรับเครือข่ายที่มีคีย์ที่แชร์ล่วงหน้า ก็ไม่ได้ให้ความเป็นส่วนตัวมากนัก
เหตุใดเครือข่ายที่บันทึกไว้จึงมีลำดับความสำคัญสูงกว่าเครือข่ายที่แนะนำ
เครือข่ายฟรี (ไม่มีการตรวจสอบ) ที่บันทึกไว้จะได้รับการจัดลำดับความสำคัญเหนือเครือข่ายฟรีที่แนะนำ และเครือข่ายที่มีการตรวจวัดที่บันทึกไว้จะได้รับการจัดลำดับความสำคัญเหนือเครือข่ายที่มีการวัดปริมาณข้อมูลที่แนะนำ
เครือข่ายที่บันทึกไว้มีลำดับความสำคัญสูงกว่าเครือข่ายที่แนะนำ เนื่องจากเครือข่ายที่บันทึกไว้เป็นเครือข่ายที่ผู้ใช้เพิ่มลงในอุปกรณ์อย่างชัดเจน นั่นหมายถึงการตั้งค่าที่จะเชื่อมต่อกับเครือข่ายเหล่านี้เมื่อเป็นไปได้
โปรดทราบว่าผู้ใช้สามารถปิดใช้งานลักษณะการเชื่อมต่ออัตโนมัติสำหรับเครือข่ายที่บันทึกไว้แต่ละเครือข่าย กล่าวคือ แสดงว่าเครือข่ายเหล่านี้มีไว้ใช้งานด้วยตนเองเท่านั้นและจะไม่ได้รับการพิจารณาโดยอัตโนมัติจากอุปกรณ์
ฉันสามารถเปลี่ยนลำดับความสำคัญที่เข้มงวดหรือลบออกทั้งหมดได้หรือไม่
ผู้ผลิตอุปกรณ์สามารถแก้ไขการตัดสินใจเลือกเครือข่ายโดยแก้ไข โบนัส โอเวอร์เลย์ที่แสดงไว้ในส่วนด้านบน อย่างไรก็ตาม ไม่แนะนำให้เปลี่ยนค่าเริ่มต้นเนื่องจากได้รับเลือกหลังจากพิจารณากรณีการใช้งานหลายกรณีอย่างรอบคอบแล้ว