Perangkat Android bisa dipasang ke beberapa jenis dok. Termasuk dok untuk mobil atau di rumah serta dok digital versus analog. Status terpasang ke dok ini biasanya sangat berkaitan dengan keadaan pengisian daya karena beberapa dok menyediakan daya ke perangkat yang dipasang ke dok.
Pengaruh status dok ponsel terhadap kecepatan update bergantung pada aplikasi Anda. Anda bisa memilih meningkatkan frekuensi update aplikasi pusat olahraga jika ponsel berada di dok desktop, atau menonaktifkan update sama sekali jika perangkat dipasang di dok mobil. Sebaliknya, Anda bisa memilih untuk memaksimalkan update saat ponsel dipasang di dok mobil jika layanan latar belakang mengupdate kondisi lalu lintas.
Keadaan terpasang di dok juga disiarkan sebagai Intent
permanen, yang memungkinkan Anda menanyakan apakah perangkat dipasang ke dok atau tidak, dan jika ya, di dok jenis apa.
Menentukan status terpasang ke dok saat ini
Detail status terpasang ke dok disertakan sebagai tambahan dalam siaran permanen dari tindakan ACTION_DOCK_EVENT
. Karena permanen, cukup panggil registerReceiver()
, dengan meneruskan null
sebagai penerima siaran. Cuplikan berikut menunjukkan cara menyelesaikan proses ini:
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);
Anda bisa mengekstrak status terpasang ke dok saat ini dari ekstra 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 = dockStatus.getIntExtra(EXTRA_DOCK_STATE, -1); boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
Menentukan jenis dok saat ini
Jika dipasang ke dok, perangkat bisa dipasang ke salah satu dari empat jenis dok yang berbeda:
- Mobil
- Meja
- Meja Biasa (Analog)
- Meja Canggih (Digital)
Perlu diingat bahwa dua opsi terakhir di atas hanya diperkenalkan pada Android di API level 11, jadi sebaiknya cukup periksa tiga opsi teratas jika Anda hanya tertarik dengan jenis dok, bukan tentang fitur digital atau analognya.
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;