Android-Geräte können an verschiedenen Arten von Docks angedockt werden. Dazu gehören Autodocks, Heimdocks sowie digitale oder analoge Docks. Der Dock-Status ist typischerweise eng mit dem Ladestatus verknüpft, da viele Docks Strom für angedockte Geräte liefern.
Ihre App wirkt sich auf die Aktualisierungsrate des Smartphones im angedockten Zustand aus. Sie können die Aktualisierungshäufigkeit einer App mit Sportnachrichten erhöhen, wenn das Gerät im Desktop-Dock ist, oder die Updates vollständig deaktivieren, wenn das Gerät im Autodock ist. Umgekehrt können Sie die Anzahl der Updates maximieren, während das Auto angedockt ist, wenn Ihr Hintergrunddienst die Verkehrslage aktualisiert.
Der Dock-Status wird auch als fixiertes Intent
übertragen, sodass Sie abfragen können, ob das Gerät angedockt ist und in welcher Art von Dock.
Aktuellen Docking-Status ermitteln
Die Details zum Dockstatus sind als Extra in einer Sticky-Übertragung der Aktion ACTION_DOCK_EVENT
enthalten. Da die Datei fixiert ist, können Sie registerReceiver()
aufrufen und null
als Übertragungsempfänger übergeben. Das folgende Snippet zeigt, wie Sie diesen Vorgang ausführen:
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);
Sie können den aktuellen Andockstatus aus dem EXTRA_DOCK_STATE
extrahieren:
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;
Aktuellen Docking-Typ ermitteln
Wenn ein Gerät angedockt ist, kann es in einem der folgenden vier Docktypen angedockt werden:
- Auto
- Schreibtisch
- Low-End-(analoger) Schreibtisch
- Digitale High-End-Desktops
Die letzten beiden Optionen werden nur in Android API-Level 11 eingeführt. Daher empfiehlt es sich, alle drei Desktoptypen zu prüfen, wenn Sie nur an der Art des Docks interessiert sind, und nicht speziell an digitalen oder analogen Ladestationen:
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;