การสแกนเพื่อลดภาระเครือข่ายที่ต้องการสำหรับ Wi-Fi

การสแกนการออฟโหลดเครือข่าย Wi-Fi ที่ต้องการ (PNO) คือการสแกน Wi-Fi ที่ใช้พลังงานต่ำซึ่ง เกิดขึ้นเป็นระยะๆ เมื่ออุปกรณ์ไม่ได้เชื่อมต่อกับ Wi-Fi และ หน้าจอปิดอยู่ การสแกน PNO ใช้เพื่อค้นหาและ เชื่อมต่อกับเครือข่ายที่บันทึกไว้ เฟรมเวิร์กจะกำหนดเวลาการสแกนเหล่านี้โดยใช้คำสั่ง NL80211_CMD_START_SCHED_SCAN ดูข้อมูลเพิ่มเติมได้ที่ nl80211.h

เพิ่มประสิทธิภาพการใช้พลังงานด้วยข้อมูลการเคลื่อนที่ของอุปกรณ์

ในอุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่า เมื่ออุปกรณ์ ไม่ได้เชื่อมต่อ Wi-Fi และหน้าจอปิดอยู่ PNO จะสแกนทุกๆ 20 วินาที สำหรับการสแกน 3 ครั้งแรก จากนั้นจะช้าลงเป็นการสแกน 1 ครั้งทุกๆ 60 วินาที สำหรับการสแกนครั้งต่อๆ ไปทั้งหมด การสแกน PNO จะหยุดเมื่อพบเครือข่ายที่บันทึกไว้หรือ เมื่อเปิดหน้าจอ

Android 10 เปิดตัวเมธอด API ที่ไม่บังคับชื่อ setDeviceMobilityState() ใน WifiManager ซึ่งจะเพิ่มช่วงเวลาระหว่าง การสแกน PNO โดยอิงตามสถานะการเคลื่อนที่ของอุปกรณ์เพื่อลดการใช้พลังงาน

สถานะการเคลื่อนไหวที่เป็นไปได้มีดังนี้

  • DEVICE_MOBILITY_STATE_UNKNOWN: ไม่ทราบความคล่องตัว
  • DEVICE_MOBILITY_STATE_HIGH_MVMT: บนจักรยานหรือในยานยนต์
  • DEVICE_MOBILITY_STATE_LOW_MVMT: การเดินหรือวิ่ง
  • DEVICE_MOBILITY_STATE_STATIONARY: ไม่เคลื่อนไหว

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

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

การใช้งาน

หากต้องการใช้ฟีเจอร์เพิ่มประสิทธิภาพการใช้พลังงานนี้ในอุปกรณ์ที่ใช้ Android 10 ขึ้นไป ให้รับข้อมูลการเคลื่อนที่ของอุปกรณ์ และเรียกใช้เมธอด setDeviceMobilityState() จากแอปของระบบที่กำหนดเอง