ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
การสแกนเพื่อลดภาระเครือข่ายที่ต้องการสำหรับ Wi-Fi
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
การสแกนเครือข่ายที่ต้องการ (PNO) ของ Wi-Fi คือการสแกน 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()
จากแอประบบที่กำหนดเอง
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# Wi-Fi preferred network offload scanning\n\nWi-Fi preferred network offload (PNO) scans are low-powered Wi-Fi scans that\noccur at regular intervals when a device is disconnected from Wi-Fi and the\nscreen is off. PNO scans are used to find and\nconnect to saved networks. These scans are scheduled by the framework using the\n`NL80211_CMD_START_SCHED_SCAN` command. For more information, see\n[nl80211.h](https://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless.git/tree/include/uapi/linux/nl80211.h).\n\nOptimize power usage with device mobility information\n-----------------------------------------------------\n\nOn devices running Android 9 or lower, when the device\nis disconnected from Wi-Fi and the screen is off, PNO scans occur at 20 second\nintervals for the first three scans, then slow down to one scan every 60 seconds\nfor all subsequent scans. PNO scanning stops when a saved network is found or\nthe screen is turned on.\n\nAndroid 10 introduces an optional API method named\n[`setDeviceMobilityState()`](https://cs.android.com/android/platform/superproject/+/android-latest-release:packages/modules/Wifi/framework/java/android/net/wifi/WifiManager.java?q=func:setDeviceMobilityState)\nin `WifiManager` that increases the interval between\nPNO scans based on the device's mobility state to reduce power consumption.\n\nThe possible mobility states are:\n\n- `DEVICE_MOBILITY_STATE_UNKNOWN`: Unknown mobility\n- `DEVICE_MOBILITY_STATE_HIGH_MVMT`: On a bike or in a motor vehicle\n- `DEVICE_MOBILITY_STATE_LOW_MVMT`: Walking or running\n- `DEVICE_MOBILITY_STATE_STATIONARY`: Not moving\n\nIf the device is stationary, the Android framework increases the\ninterval between PNO scans from 60 seconds to 180 seconds to reduce power\nconsumption. This optimization is made on the assumption that the device is\nunlikely to find any new networks in PNO scans when the device is not moving.\n\nIf the device is in any other mobility state or if the method isn't called, the\ndevice uses the default PNO scan behavior.\n\n### Implementation\n\nTo implement this power-optimizing feature on a device running Android\n10 or higher, derive the device mobility information\nand call the `setDeviceMobilityState()` method from a custom system app."]]