Yuvaya yerleştirme durumunu ve türünü belirleme ve izleme

Android destekli cihazlar farklı yuvalara yerleştirilebilir. Bu araba yuvaları, ev yuvaları ve dijital veya analog yuvalar dahildir. Yuva durumu: genellikle şarj durumuyla yakından ilişkilidir, çünkü pek çok yuva yuvaya yerleştirilmiş cihazlarla kullanılabilir.

Uygulamanız yuva durumunda telefonun güncelleme hızını etkiler. Bütçenizi Masaüstü yuvadayken bir spor haberleri uygulamasının güncellenme sıklığı veya Cihaz araç yuvasına takılıysa güncellemelerinizi tamamen devre dışı bırakın. Öte yandan arka plan hizmetiniz güncelleniyorsa araç yuvasındayken güncellemelerinizi en üst düzeye çıkarın trafik koşullarını karşılamalısınız.

Yuva durumu, aynı zamanda yapışkan olarak yayınlanır. Intent, Bu sayede cihazın yuvaya yerleştirilmiş olup olmadığını ve yuvaya yerleştirilmiş olması durumunda öyle.

Mevcut yerleştirme durumunu belirleme

Yuva durumu ayrıntıları, yapışkan yayını ACTION_DOCK_EVENT eyleme dökülebilir. Sabit olduğu için telefon edebilirsiniz. registerReceiver(), yayın alıcı olarak null iletiliyor. Aşağıdaki snippet Bu işlemin nasıl tamamlanacağını gösterir:

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);

Mevcut yuvaya yerleştirme durumunu şuradan çıkarabilirsiniz: EXTRA_DOCK_STATE ekstra:

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;

Mevcut yuva türünü belirleme

Bir cihaz yuvaya yerleştirilmişse aşağıdaki dört kameradan herhangi birine yerleştirilebilir farklı yuva türleri:

  • Otomobil
  • Masa
  • Alçak (Analog) masa
  • İleri teknoloji (Dijital) masa

Son iki seçenek yalnızca Android API düzey 11'de kullanıma sunulmuştur. Bu nedenle Yalnızca ilgilendiğinizi ve projenizle ilgiliyse üç masa türünü de kontrol etmek dijital veya analog olması yerine yuvanın türünü belirtmelidir:

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;