اسکن کردن تخلیه شبکه ترجیحی Wi-Fi

اسکن‌های تخلیه شبکه ترجیحی Wi-Fi (PNO) اسکن‌های Wi-Fi کم‌مصرفی هستند که وقتی دستگاه از Wi-Fi قطع می‌شود و صفحه‌نمایش خاموش است، در فواصل زمانی منظم انجام می‌شوند. از اسکن‌های PNO برای پیدا کردن و متصل شدن به شبکه‌های ذخیره‌شده استفاده می‌شود. این اسکن‌ها توسط چارچوب بااستفاده از فرمان NL80211_CMD_START_SCHED_SCAN زمان‌بندی می‌شوند. برای اطلاعات بیشتر، nl80211.h را ببینید.

بهینه‌سازی مصرف برق با اطلاعات جابه‌جایی دستگاه

در دستگاه‌های دارای Android نسخه ۹ یا پایین‌تر، وقتی اتصال دستگاه از Wi-Fi قطع می‌شود و صفحه‌نمایش خاموش است، اسکن‌های PNO در سه اسکن اول در فاصله‌های ۲۰ ثانیه‌ای انجام می‌شود، سپس برای همه اسکن‌های بعدی سرعت آن به یک اسکن در هر ۶۰ ثانیه کاهش می‌یابد. وقتی شبکه ذخیره‌شده‌ای پیدا شود یا صفحه‌نمایش روشن شود، اسکن 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 را از ۶۰ ثانیه به ۱۸۰ ثانیه افزایش می‌دهد تا مصرف انرژی کاهش یابد. این بهینه‌سازی با این فرض انجام می‌شود که وقتی دستگاه حرکت نمی‌کند، بعید است شبکه‌های جدیدی در اسکن‌های PNO پیدا کند.

اگر دستگاه در هر وضعیت جابه‌جایی دیگری باشد یا اگر روش فراخوانی نشود، دستگاه از رفتار اسکن PNO پیش‌فرض استفاده می‌کند.

پیاده‌سازی

برای پیاده‌سازی این ویژگی بهینه‌سازی مصرف باتری در دستگاهی که Android نسخه ۱۰ یا بالاتر دارد، اطلاعات تحرک دستگاه را استخراج کنید و روش setDeviceMobilityState() را از برنامه سیستم سفارشی فراخوانی کنید.