การสแกนออฟโหลดเครือข่ายที่ต้องการ Wi-Fi

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

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

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