اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
البحث عن شبكة Wi-Fi المفضّلة لنقل البيانات
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
عمليات البحث عن شبكة Wi-Fi المفضّلة (PNO) هي عمليات بحث عن شبكة Wi-Fi منخفضة الطاقة تتم
بمعدّل منتظم عندما يكون الجهاز غير متصل بشبكة Wi-Fi وتكون
الشاشة مطفأة. وتُستخدَم عمليات البحث عن شبكة Wi-Fi المفضّلة للعثور على الشبكات المحفوظة
والاتصال بها. يحدِّد إطار العمل جدولاً زمنيًا لهذه عمليات الفحص باستخدام الأمر
NL80211_CMD_START_SCHED_SCAN
. لمزيد من المعلومات، يُرجى الاطّلاع علىملف برمجي
nl80211.h.
على الأجهزة التي تعمل بالإصدار 9 من نظام التشغيل Android أو الإصدارات الأقدم، عندما يتم فصل الجهاز عن شبكة Wi-Fi وتكون الشاشة مطفأة، يتم إجراء عمليات فحص شبكة PNO على فترات تبلغ 20 ثانية في عمليات الفحص الثلاث الأولى، ثم يتم إبطاء عمليات الفحص إلى عملية واحدة كل 60 ثانية في جميع عمليات الفحص اللاحقة. يتوقف فحص شبكة PNO عند العثور على شبكة محفوظة أو عند إشعال الشاشة.
يقدّم نظام التشغيل Android 10 طريقة اختيارية لواجهة برمجة التطبيقات باسم
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 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]