Android-Geräte können an verschiedenen Arten von Docks angedockt werden. Diese wie Autodocks, Homedocks und digitale oder analoge Docks. Der Dock-Status ist in der Regel eng mit dem Ladestatus verbunden, da viele Docks Strom für angedockten Geräten.
Ihre App wirkt sich im Dock-Status auf die Aktualisierungsrate des Telefons aus. Sie können die Anzahl die Aktualisierungshäufigkeit einer Sportnachrichten-App, wenn sie sich im Desktop-Dock befindet Ihre Updates vollständig deaktiviert, wenn das Gerät angedockt ist. Umgekehrt können Sie Updates im angedockten Auto maximieren, wenn der Hintergrunddienst aktualisiert wird Verkehrslage.
Der Dock-Status wird auch als fixiert übertragen.
Intent
,
So können Sie abfragen, ob das Gerät angedockt ist und in welcher Art von Dock
also.
Aktuellen Docking-Status ermitteln
Die Details zum Dock-Status sind in einem
dauerhafte Übertragung der
ACTION_DOCK_EVENT
Aktion ausführen. Da es fixiert ist, können Sie
registerReceiver()
,
null
wird 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 der
EXTRA_DOCK_STATE
Extra:
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
Ein angedocktes Gerät kann in einem der folgenden vier Bereiche angedockt werden: verschiedene Dock-Typen:
- Auto
- Schreibtisch
- Analoger Low-End-Desktop
- Digitale High-End-Desktops
Die letzten beiden Optionen werden erst mit Android API Level 11 eingeführt. Es ist also wenn Sie nur an den Desktoptypen interessiert sind, und nicht speziell auf digitale oder analoge Ladedock,
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;