การเลือกเครือข่าย Android Wi-Fi

หน้านี้สรุปอัลกอริทึมและขั้นตอนที่ใช้ใน Android 12 สำหรับการเลือกและสลับระหว่างเครือข่าย Wi-Fi Android ประเมินคุณภาพของเครือข่ายที่เชื่อมต่ออย่างต่อเนื่องและประเมินคุณภาพของเครือข่ายที่มีอยู่

ชีวิตของการเชื่อมต่ออัตโนมัติ

ข้อมูลนี้จะอธิบายกระบวนการที่อุปกรณ์ Android ประเมินและเชื่อมต่อกับเครือข่าย Wi-Fi ที่พร้อมใช้งาน

  1. อุปกรณ์จะสแกนหาเครือข่ายที่ใช้ได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้ ขึ้นอยู่กับว่าหน้าจอเปิดหรือปิดอยู่

    • เปิดหน้าจอ (เชื่อมต่อแล้ว): ระบบย่อยการเชื่อมต่อ Android จะประเมินเป็นประจำว่าการเชื่อมต่อปัจจุบันดีพอที่จะข้ามการสแกนหรือไม่ (ตามที่กำหนดไว้ใน การสแกนบนหน้าจอ ) หากการเชื่อมต่อไม่ดีพอที่จะข้ามการสแกน ระบบย่อยการเชื่อมต่อจะทริกเกอร์การ สแกน เพื่อตรวจหาเครือข่ายที่พร้อมใช้งาน การสแกนเหล่านี้ยังสามารถทริกเกอร์โดยส่วนประกอบอื่นๆ ของระบบ เช่น ระบบตำแหน่งหรือแอป (รวมถึงแอปการตั้งค่า)
    • เปิดหน้าจอ (ตัดการเชื่อมต่อ): ระบบย่อยการเชื่อมต่อ Android จะออกการสแกนเป็นระยะตามกำหนดการแบ็คออฟแบบเอ็กซ์โพเนนเชียล โมดูลจะประเมินผลการสแกนทั้งหมดที่ได้รับ และพยายามเลือกเครือข่ายที่ดีที่สุดที่จะเชื่อมต่อ
    • ปิดหน้าจอ (ตัดการเชื่อมต่อ): CPU ของโฮสต์จะตั้งโปรแกรมเฟิร์มแวร์พร้อมรายการเครือข่ายที่ต้องการโดยใช้การสแกนเครือข่ายที่ต้องการ (PNO) ทันทีที่หน้าจอดับ เฟิร์มแวร์จะปลุกโฮสต์หากพบเครือข่ายที่ต้องการ AOSP ถือว่าอุปกรณ์รองรับ PNO

    คุณสามารถใช้วิธี WifiManager#allowAutojoinGlobal(boolean) เพื่อปิดใช้งานการเชื่อมต่ออัตโนมัติ นี่เป็น API ที่มีสิทธิพิเศษที่ผู้ผลิตอุปกรณ์สามารถใช้ได้ในบางกรณี (เช่น อุปกรณ์ที่ไม่ใช่อุปกรณ์เคลื่อนที่และกำหนดค่าไว้ล่วงหน้า)

    หากอุปกรณ์เชื่อมต่อและโอเวอร์ config_wifi_framework_enable_associated_network_selection ถูกตั้งค่า false จะไม่มีการสแกนการเชื่อมต่อใดๆ และผลการสแกนจะไม่ทริกเกอร์การเลือกเครือข่าย การตั้งค่านี้ไม่มีผลเมื่อยกเลิกการเชื่อมต่ออุปกรณ์ หมายความว่าการสแกนการเชื่อมต่อและการเลือกเครือข่ายยังคงเกิดขึ้น

  2. ผลการสแกนจะถูกประเมิน

    • หากอุปกรณ์เชื่อมต่อกับเครือข่าย 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 แยกกัน

  3. กรอบงานเรียกใช้ผู้ให้คะแนนของ ผู้สมัคร เพื่อสร้างคะแนนสำหรับตัวระบุชุดบริการ (SSID) แต่ละรายการ ตัวเลือก SSID สามารถรวมตัวระบุชุดบริการพื้นฐาน (BSSID) ได้หลายตัว (สร้างโดยผู้เสนอชื่อเครือข่าย) ผู้สมัครที่มีคะแนนสูงสุดคือ ผู้สมัครที่ชนะ

  4. เฟรมเวิร์กดำเนินการอัลกอริทึม ตัวเลือกการเชื่อมต่อผู้ใช้ ซึ่งอาจทำให้เครือข่ายที่ผู้ใช้เลือกเป็นผู้สมัครที่ชนะรายใหม่ แทนที่จะใช้ผู้สมัครที่ชนะจากผู้ให้คะแนนของผู้สมัคร

  5. กรอบงานกำหนดว่าผู้สมัครที่ชนะตรงกับเครือข่ายที่เชื่อมต่ออยู่หรือไม่ ในการพิจารณาการแข่งขัน จะต้องมีคุณสมบัติตรงตามข้อใดข้อหนึ่งต่อไปนี้:

    • ผู้สมัครที่ชนะและเครือข่าย Wi-Fi ที่เชื่อมต่อมี BSSID เดียวกัน
    • หากมีการโรมมิ่งเฟิร์มแวร์ (รวมถึงความสามารถบัญชีดำของ BSSID) ผู้สมัครที่ชนะและเครือข่ายที่เชื่อมต่อจะมี SSID และประเภทความปลอดภัยเหมือนกัน

    หากผู้สมัครที่ชนะตรงกับเครือข่ายที่เชื่อมต่ออยู่ จะไม่มีการดำเนินการใดๆ เพิ่มเติม หากผู้สมัครที่ชนะไม่ตรงกับเครือข่าย อุปกรณ์จะเชื่อมโยงกับผู้สมัครที่ชนะ

โปรดทราบว่าการเชื่อมต่อเครือข่ายอัตโนมัติถูกปิดใช้งานในขณะที่แอปใช้ Wi-Fi Network Request API ซึ่งจะแทนที่ระบบและสร้าง LAN ที่ไม่มีอินเทอร์เน็ต ยกเว้นในอุปกรณ์ที่รองรับสถานีคู่พร้อมกัน

การประเมินเครือข่ายที่เชื่อมต่อ

กรอบงานหรือเฟิร์มแวร์ของ Android จะประเมินคุณภาพของเครือข่ายที่เชื่อมต่อเป็นระยะ ส่วนนี้อธิบายวิธีประเมินเครือข่ายที่เชื่อมต่อเมื่อเปิดหรือปิดหน้าจอ

การประเมินนี้ดำเนินการเพิ่มเติมจากการ เลือกเครือข่าย ที่กล่าวถึงข้างต้น

เปิดหน้าจอ

กรอบงาน Android ประเมินเครือข่ายที่เชื่อมต่อด้วยวิธีต่อไปนี้:

  1. บริการ Wi-Fi จะสำรวจ RSSI และสถิติชั้นลิงก์ทุกๆ 3 วินาที (กำหนดค่าได้โดยใช้การซ้อนทับ config_wifiPollRssiIntervalMilliseconds )
  2. บริการ Wi-Fi จะคำนวณคะแนนที่เชื่อมต่อตามสถิติ RSSI และลิงค์เลเยอร์
  3. บริการ 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 หากอุปกรณ์เชื่อมต่อกับเครือข่ายอื่นที่มีการเข้าถึงอินเทอร์เน็ตอยู่

โบนัสเริ่มต้นสำหรับการบันทึกเทียบกับข้อเสนอแนะและไม่ถูกตรวจสอบกับมิเตอร์ (นั่นคือค่าโอเวอร์เลย์เริ่มต้น) จะสร้างลำดับความสำคัญที่เข้มงวดสำหรับการบันทึก แนะนำ ตรวจสอบและไม่คิดค่าบริการ:

  1. บันทึกเครือข่ายที่ไม่มีการตรวจสอบ
  2. แนะนำเครือข่ายที่ไม่มีการตรวจสอบ
  3. เครือข่ายมิเตอร์ที่บันทึกไว้
  4. แนะนำเครือข่ายมิเตอร์

ซึ่งหมายความว่าระบบจะเลือกเครือข่ายที่ไม่มีการตรวจสอบ (ฟรี) ที่บันทึกไว้ก่อนเครือข่ายที่มีการตรวจวัด (แบบชำระเงิน) ที่บันทึกไว้เสมอ โบนัสคะแนนที่เพิ่งเลือก (โดยผู้ใช้หรือแอป) อาจแทนที่ลำดับความสำคัญที่เข้มงวดนั้น

กรอบงานสามารถติดตั้งผู้ให้คะแนนของผู้สมัครได้หลายราย แต่สามารถเปิดใช้งานได้ครั้งละหนึ่งรายการเท่านั้น ผู้ให้คะแนนอื่นๆ สามารถใช้สำหรับเมตริก (เพื่อตรวจสอบอัลกอริทึมทางเลือก) ใน 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)

  1. เครือข่ายที่ปลอดภัยมีความสำคัญเหนือเครือข่ายแบบเปิดเสมอหรือไม่

    ไม่ได้ บันทึกเทียบกับที่แนะนำและตามมิเตอร์กับไม่มีการตรวจสอบเป็นหมวดหมู่หลักในการประเมินเครือข่าย ภายในแต่ละหมวดหมู่ เครือข่ายที่ปลอดภัยมีความสำคัญเหนือเครือข่ายแบบเปิด แต่จะมีน้ำหนักที่สูงกว่ามากสำหรับคุณภาพของการเชื่อมต่อ

    เหตุผลก็คือการรักษาความปลอดภัยข้อมูลผู้ใช้จริงนั้นมาจากการเข้ารหัสแบบ end-to-end (เช่น TLS) เครือข่ายที่ปลอดภัยจะเข้ารหัสเฉพาะช่วงแรกของการสื่อสาร และสำหรับเครือข่ายที่มีคีย์ที่แชร์ล่วงหน้า ก็ไม่ได้ให้ความเป็นส่วนตัวมากนัก

  2. เหตุใดเครือข่ายที่บันทึกไว้จึงมีลำดับความสำคัญสูงกว่าเครือข่ายที่แนะนำ

    เครือข่ายฟรี (ไม่มีการตรวจสอบ) ที่บันทึกไว้จะได้รับการจัดลำดับความสำคัญเหนือเครือข่ายฟรีที่แนะนำ และเครือข่ายที่มีการตรวจวัดที่บันทึกไว้จะได้รับการจัดลำดับความสำคัญเหนือเครือข่ายที่มีการวัดปริมาณข้อมูลที่แนะนำ

    เครือข่ายที่บันทึกไว้มีลำดับความสำคัญสูงกว่าเครือข่ายที่แนะนำ เนื่องจากเครือข่ายที่บันทึกไว้เป็นเครือข่ายที่ผู้ใช้เพิ่มลงในอุปกรณ์อย่างชัดเจน นั่นหมายถึงการตั้งค่าที่จะเชื่อมต่อกับเครือข่ายเหล่านี้เมื่อเป็นไปได้

    โปรดทราบว่าผู้ใช้สามารถปิดใช้งานลักษณะการเชื่อมต่ออัตโนมัติสำหรับเครือข่ายที่บันทึกไว้แต่ละเครือข่าย กล่าวคือ แสดงว่าเครือข่ายเหล่านี้มีไว้ใช้งานด้วยตนเองเท่านั้นและจะไม่ได้รับการพิจารณาโดยอัตโนมัติจากอุปกรณ์

  3. ฉันสามารถเปลี่ยนลำดับความสำคัญที่เข้มงวดหรือลบออกทั้งหมดได้หรือไม่

    ผู้ผลิตอุปกรณ์สามารถแก้ไขการตัดสินใจเลือกเครือข่ายโดยแก้ไข โบนัส โอเวอร์เลย์ที่แสดงไว้ในส่วนด้านบน อย่างไรก็ตาม ไม่แนะนำให้เปลี่ยนค่าเริ่มต้นเนื่องจากได้รับเลือกหลังจากพิจารณากรณีการใช้งานหลายกรณีอย่างรอบคอบแล้ว