סריקה של העברה אל רשת מועדפת ב-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 ואילך, צריך להפיק את נתוני הניידות של המכשיר ולקרוא לשיטה setDeviceMobilityState() מאפליקציית מערכת בהתאמה אישית.