החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
סריקה של העברה אל רשת מועדפת ב-Wi-Fi
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
סריקות של Wi-Fi להעברת עומס (PNO) הן סריקות 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 ואילך, צריך להפיק את המידע על ניידות המכשיר ולקרוא ל-method 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."]]