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