การสแกนการถ่ายโอนข้อมูลเครือข่ายที่ต้องการ (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()
จากแอประบบที่กำหนดเอง