Android-Geräte können an verschiedene Docks angeschlossen werden. Dazu gehören Docks für Autos, Docks für zu Hause sowie digitale oder analoge Docks. Der Ladezustand des Docks ist in der Regel eng mit dem Ladestatus verknüpft, da viele Docks die angedockten Geräte mit Strom versorgen.
Deine App beeinflusst die Updaterate des Smartphones im Dock-Status. Sie können die Aktualisierungshäufigkeit einer Sportnachrichten-App erhöhen, wenn sie sich im Desktop-Dock befindet, oder Ihre Updates vollständig deaktivieren, wenn das Gerät angedockt ist. Umgekehrt können Sie die Anzahl der Updates maximieren, während das Auto angedockt ist, wenn Ihr Hintergrunddienst die Verkehrslage aktualisiert.
Der Dockstatus wird auch als fixiertes Intent
übertragen. So können Sie abfragen, ob das Gerät angedockt ist, falls ja, in welcher Art.
Aktuellen Docking-Status ermitteln
Die Details zum Dockstatus sind zusätzlich in einem Sticky Broadcast der Aktion ACTION_DOCK_EVENT
enthalten. Da sie fixiert ist, können Sie registerReceiver()
aufrufen und null
als Übertragungsempfänger übergeben. Das folgende Snippet zeigt, wie dieser Vorgang abgeschlossen wird:
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 Docking-Status aus dem Zusatz 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 Dock-Typ ermitteln
Wenn ein Gerät angedockt ist, kann es an einem der folgenden vier verschiedenen Docktypen angedockt werden:
- Auto
- Desk (Schreibtisch)
- Analoger (niedriger) Desktop
- Digitaler High-End-Desktop
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 dem Docktyp interessiert sind und nicht an dem Typ des Docks.
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;