ডকিং অবস্থা এবং টাইপ নির্ধারণ এবং নিরীক্ষণ করুন

অ্যান্ড্রয়েড-চালিত ডিভাইসগুলি বিভিন্ন ধরণের ডকগুলিতে ডক করা যেতে পারে। এর মধ্যে রয়েছে কার ডক, হোম ডক এবং ডিজিটাল বা এনালগ ডক। ডক স্টেট সাধারণত চার্জিং স্টেটের সাথে ঘনিষ্ঠভাবে যুক্ত থাকে, কারণ অনেক ডক ডক করা ডিভাইসে শক্তি প্রদান করে।

আপনার অ্যাপ ডক অবস্থায় ফোনের আপডেট রেটকে প্রভাবিত করে। আপনি ডেস্কটপ ডকে থাকাকালীন স্পোর্টস নিউজ অ্যাপের আপডেট ফ্রিকোয়েন্সি বাড়াতে পারেন বা ডিভাইসটি গাড়ি ডক করা থাকলে আপনার আপডেটগুলি সম্পূর্ণরূপে অক্ষম করতে পারেন৷ বিপরীতভাবে, যদি আপনার ব্যাকগ্রাউন্ড পরিষেবা ট্র্যাফিক পরিস্থিতি আপডেট করে তবে গাড়ি ডক করার সময় আপনি আপনার আপডেটগুলি সর্বাধিক করতে পারেন।

ডক স্টেটটি একটি স্টিকি Intent হিসাবেও সম্প্রচার করা হয়, যা আপনাকে ডিভাইসটি ডক করা আছে কিনা এবং কোন ধরনের ডকে তা হলে তা জানতে দেয়।

বর্তমান ডকিং অবস্থা নির্ধারণ করুন

ACTION_DOCK_EVENT অ্যাকশনের একটি স্টিকি সম্প্রচারে ডক স্টেটের বিশদ একটি অতিরিক্ত হিসাবে অন্তর্ভুক্ত করা হয়েছে৷ যেহেতু এটি স্টিকি, আপনি registerReceiver() কল করতে পারেন, সম্প্রচার রিসিভার হিসাবে null পাস করে। নিম্নলিখিত স্নিপেট দেখায় কিভাবে এই প্রক্রিয়াটি সম্পূর্ণ করতে হয়:

কোটলিন

val dockStatus: Intent? = IntentFilter(Intent.ACTION_DOCK_EVENT).let { ifilter ->
    context.registerReceiver(null, ifilter)
}

জাভা

IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = context.registerReceiver(null, ifilter);

আপনি EXTRA_DOCK_STATE অতিরিক্ত থেকে বর্তমান ডকিং অবস্থা বের করতে পারেন:

কোটলিন

val dockState: Int = dockStatus?.getIntExtra(EXTRA_DOCK_STATE, -1) ?: -1
val isDocked: Boolean = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED

জাভা

int dockState -1;
if (dockStatus != null) {
  dockState = dockStatus.getIntExtra(EXTRA_DOCK_STATE, -1);
}
boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;

বর্তমান ডকের ধরন নির্ধারণ করুন

যদি একটি ডিভাইস ডক করা হয়, তবে এটি নিম্নলিখিত চারটি ভিন্ন ডক প্রকারের যেকোনো একটিতে ডক করা যেতে পারে:

  • গাড়ী
  • ডেস্ক
  • লো-এন্ড (অ্যানালগ) ডেস্ক
  • হাই-এন্ড (ডিজিটাল) ডেস্ক

পরের দুটি বিকল্প শুধুমাত্র অ্যান্ড্রয়েড এপিআই লেভেল 11-এ প্রবর্তন করা হয়েছে, তাই যখন আপনি শুধুমাত্র ডিজিটাল বা এনালগ হওয়ার চেয়ে ডকের প্রকারে আগ্রহী হন তখন তিনটি ডেস্কের প্রকারের জন্য পরীক্ষা করা ভাল অনুশীলন:

কোটলিন

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

জাভা

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;