از 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
: حرکت نمی کند
اگر دستگاه ثابت است، فریم ورک اندروید فاصله بین اسکنهای PNO را از 60 ثانیه به 180 ثانیه افزایش میدهد تا مصرف انرژی را کاهش دهد. این بهینهسازی با این فرض انجام میشود که وقتی دستگاه در حال حرکت نیست، بعید است دستگاه شبکههای جدیدی را در اسکنهای PNO پیدا کند.
اگر دستگاه در هر حالت تحرک دیگری باشد یا اگر روش فراخوانی نشده باشد، دستگاه از رفتار اسکن PNO پیشفرض استفاده میکند.
پیاده سازی
برای پیادهسازی این ویژگی بهینهسازی نیرو در دستگاهی که Android 10 یا بالاتر دارد، اطلاعات تحرک دستگاه را استخراج کنید و متد setDeviceMobilityState()
را از یک برنامه سیستمی سفارشی فراخوانی کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-09-02 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-09-02 بهوقت ساعت هماهنگ جهانی."],[],[],null,["Wi-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\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\nImplementation\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."]]