אפשר לחבר מכשירים מבוססי Android לסוגים שונים של אביזרי עגינה. האלה כוללים תחנות עגינה לרכב, תחנות עגינה לבית ותחנות עגינה דיגיטליות או אנלוגיות. מצב העגינה הוא לרוב יש קשר הדוק למצב הטעינה, מכיוון שתחנות עגינה רבות מספקות אספקת חשמל מכשירים שמחוברים לאביזר עגינה.
האפליקציה משפיעה על קצב העדכון של הטלפון במצב 'אביזר'. אפשר להגדיל את תדירות העדכון של אפליקציית חדשות ספורט כשהיא מותקנת בשולחן העבודה, או להשבית את העדכונים לחלוטין אם המכשיר מחובר לאביזר עגינה. לעומת זאת, אפשר למקסם את העדכונים בזמן העגינה של הרכב אם השירות ברקע מתעדכן מצב התנועה.
גם מצב העגינה משודר כדביק
Intent
,
מאפשרת לך להריץ שאילתה אם המכשיר בעגינה ובאיזה סוג של אביזר עגינה,
אז.
קביעת מצב העגינה הנוכחי
הפרטים של מצב העגינה כלולים כתוספת
שידור דביק של
ACTION_DOCK_EVENT
פעולה. מכיוון שהוא במיקום קבוע, אפשר להתקשר
registerReceiver()
,
מועבר ב-null
בתור מקלט השידור. קטע הקוד הבא
מראים איך להשלים את התהליך:
Kotlin
val dockStatus: Intent? = IntentFilter(Intent.ACTION_DOCK_EVENT).let { ifilter -> context.registerReceiver(null, ifilter) }
Java
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT); Intent dockStatus = context.registerReceiver(null, ifilter);
אפשר לחלץ את סטטוס העגינה הנוכחי מתוך
עוד EXTRA_DOCK_STATE
:
Kotlin
val dockState: Int = dockStatus?.getIntExtra(EXTRA_DOCK_STATE, -1) ?: -1 val isDocked: Boolean = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED
Java
int dockState -1; if (dockStatus != null) { dockState = dockStatus.getIntExtra(EXTRA_DOCK_STATE, -1); } boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
קביעת סוג העגינה הנוכחי
אם המכשיר מחובר לאביזר עגינה, ניתן לחבר אותו באביזר העגינה סוגים שונים של אביזרי עגינה:
- רכב
- שולחן כתיבה
- שולחן עבודה וירטואלי (אנלוגי) פשוט
- שולחן עבודה דיגיטלי (דיגיטלי) יוקרתי
שתי האפשרויות האחרונות מוצגות רק ב-Android API ברמה 11, כך כדאי לבדוק את כל שלושת הסוגים של שולחנות העבודה הווירטואליים אם אתם מתעניינים רק בהם סוג ה-Dock ולא שהוא דיגיטלי או אנלוגי באופן ספציפי:
Kotlin
val isCar: Boolean = dockState == EXTRA_DOCK_STATE_CAR val isDesk: Boolean = dockState == EXTRA_DOCK_STATE_DESK || dockState == EXTRA_DOCK_STATE_LE_DESK || dockState == EXTRA_DOCK_STATE_HE_DESK
Java
boolean isCar = dockState == EXTRA_DOCK_STATE_CAR; boolean isDesk = dockState == EXTRA_DOCK_STATE_DESK || dockState == EXTRA_DOCK_STATE_LE_DESK || dockState == EXTRA_DOCK_STATE_HE_DESK;