Urządzenia z Androidem można zadokować w różnych rodzajach stacji dokujących. Te obejmują samochodowe i domowe stacje dokujące oraz cyfrowe i analogowe. Stan dokowania to jest ściśle powiązany ze stanem ładowania, ponieważ wiele stacji dokujących urządzeń zadokowanych.
Aplikacja wpływa na szybkość aktualizacji telefonu w stanie dokowania. Możesz zwiększyć częstotliwość aktualizacji aplikacji z wiadomościami sportowymi, gdy znajduje się ona w Docku na komputerze; całkowicie wyłączyć aktualizacje, jeśli urządzenie jest zadokowane w samochodzie. Możesz też maksymalizuj aktualizacje, gdy samochód jest zadokowany, gdy aktualizuje się usługa w tle warunki na drodze.
Stan dokowania również jest transmitowany jako przyklejony.
Intent
,
pozwalając sprawdzić, czy urządzenie jest zadokowane i w jakiej stacji dokującej
tak.
Określanie bieżącego stanu zadokowania
Informacje o stanie dokowania są dostępne jako dodatek w
transmisja przyklejona
ACTION_DOCK_EVENT
działania. Jest przyklejony, więc możesz zadzwonić
registerReceiver()
,
podając null
jako odbiornik. Ten fragment kodu
jak to zrobić:
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);
Bieżący stan dokowania można wyodrębnić z
Dodatkowo 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;
Określ bieżący typ stacji dokującej
Jeśli urządzenie jest zadokowane, może być zadokowane w dowolnym z tych 4 miejsc różne typy stacji dokujących:
- Samochód
- Biurko
- Niskobudżetowe (analogowe) biurko
- Biurko wysokiej klasy (cyfrowe)
Dwie ostatnie opcje zostały wprowadzone tylko w interfejsie API Androida na poziomie 11, więc warto sprawdzić wszystkie trzy typy biurek, jeśli interesują Cię tylko typu stacji dokującej, a nie cyfrowej czy analogowej:
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;