डॉकिंग की स्थिति तय करें और उसे मॉनिटर करें

Android पर चलने वाले डिवाइसों को अलग-अलग तरह के डॉक में डॉक किया जा सकता है. ये इनमें कार डॉक, होम डॉक, और डिजिटल या ऐनालॉग डॉक शामिल हैं. डॉक की स्थिति आम तौर पर, ये चार्जिंग स्टेशन से जुड़े होते हैं, क्योंकि कई डॉक चार्जिंग स्टेशन को पावर सप्लाई करते हैं डॉक से जुड़े हुए डिवाइस.

डॉक की स्थिति में फ़ोन के अपडेट होने की दर पर, आपके ऐप्लिकेशन का असर पड़ता है. इसे बढ़ाया जा सकता है डेस्कटॉप डॉक में होने पर, खेल-कूद से जुड़ा समाचार ऐप्लिकेशन कितनी बार अपडेट किया जाएगा या अगर डिवाइस कार से डॉक हो, तो अपडेट को पूरी तरह से बंद कर दें. इसके उलट, आपके पास अगर बैकग्राउंड में चलने वाली सेवा अपडेट हो रही है, तो कार डॉक होने के दौरान अपने डिवाइस के अपडेट बढ़ाएं ट्रैफ़िक का हाल देखें.

डॉक की स्थिति को स्टिकी के तौर पर भी ब्रॉडकास्ट किया जाता है Intent, आपको यह क्वेरी करने की अनुमति देगा कि अगर डिवाइस को डॉक किया गया है और वह किस तरह के डॉक में है तो.

डॉक की मौजूदा स्थिति का पता लगाना

डॉक की स्थिति की जानकारी, स्टिकी ब्रॉडकास्ट ACTION_DOCK_EVENT कार्रवाई. यह स्टिकी है, इसलिए कॉल किया जा सकता है registerReceiver(), null में ब्रॉडकास्ट रिसीवर के रूप में पास कर रहा/रही हूँ. नीचे दिया गया स्निपेट इस प्रोसेस को पूरा करने का तरीका बताया गया है:

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

डॉकिंग की मौजूदा स्थिति को यहां से लिया जा सकता है: 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;

डॉक का मौजूदा टाइप तय करें

अगर किसी डिवाइस को डॉक किया गया है, तो उसे इन चार में से किसी एक तरीके से डॉक किया जा सकता है अलग-अलग तरह के डॉक:

  • कार
  • डेस्क
  • लो-एंड (एनालॉग) डेस्क
  • हाई-एंड (डिजिटल) डेस्क

बाद के दो विकल्प सिर्फ़ Android एपीआई लेवल 11 में उपलब्ध कराए गए हैं. इसलिए, यह जब आपकी रुचि हो, तब तीनों डेस्क टाइप को देखना अच्छा रहेगा न कि डॉक का डिजिटल या एनालॉग हो:

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;