ফিজিক্যাল বোতাম

সাধারণত, পরিধানযোগ্য ডিভাইসে একাধিক ফিজিক্যাল বোতাম থাকে, এগুলিকে স্টেমও বলা হয়। Wear OS ডিভাইসে সবসময় অন্তত একটি বোতাম থাকে: পাওয়ার বোতাম। এছাড়াও, শূন্য বা তার বেশি মাল্টিফাংশন বোতাম থাকতে পারে। এছাড়াও, কিছু ডিভাইস ফিজিক্যাল রোটেটিং সাইড বোতাম প্রদান করে।

আপনার অ্যাপে, অ্যাপ ফোরগ্রাউন্ডে থাকাকালীন অ্যাকশনের জন্য আপনি মাল্টিফাংশন বোতাম অ্যাসাইন করতে পারবেন। যেমন, ফিটনেস অ্যাপ মাল্টিফাংশন বোতাম ব্যবহার করে ওয়ার্ক-আউট শুরু বা পজ করতে পারে:

একাধিক সাইড বোতাম সহ একটি ওয়াচ। সিস্টেম একটি বোতামকে মাল্টি-ফাংশন বোতাম হিসেবে নির্ধারণ করে।
ছবি ১. Wear OS ফিটনেস অ্যাপে মাল্টিফাংশন বোতাম দেখানো হচ্ছে।

উপযুক্ত ব্যবহারের ক্ষেত্র ও ডিজাইন সংক্রান্ত বিবেচনার জন্য, Wear OS ডিজাইন প্রিন্সিপাল দেখুন।

এই ডকুমেন্টে বর্ণনা করা হয়েছে যে কীভাবে কোনও ডিভাইসে উপলভ্য মাল্টিফাংশন বোতাম সম্পর্কে তথ্য পাওয়া যায় এবং কীভাবে বোতাম প্রেস করা প্রসেস করা হয়।

বোতামের মেটাডেটা

ডিভাইসের বোতাম সম্পর্কে অতিরিক্ত তথ্য পেতে, AndroidX লাইব্রেরির Wear Input এ সংজ্ঞায়িত API ব্যবহার করুন। আপনার অ্যাপ মডিউলের build.gradle ফাইলে নিম্নলিখিত ডিপেন্ডেন্সি যোগ করুন:

dependencies {
implementation "androidx.wear:wear-input:1.2.0"
}

বোতামের সংখ্যা

ডিভাইসে কতগুলি বোতাম উপলভ্য তা নির্ধারণ করুন, এর জন্য WearableButtons.getButtonCount() মেথড ব্যবহার করুন। এই পদ্ধতিতে পাওয়ার বোতাম অন্তর্ভুক্ত থাকে, তাই পদ্ধতিটি যদি একের থেকে বেশি মান রিটার্ন করে, তাহলে ব্যবহার করার জন্য মাল্টিফাংশন বোতাম উপলভ্য আছে। অ্যাসাইন করা যায় এমন মাল্টিফাংশন বোতামের সঠিক সংখ্যা পেতে, মোট সংখ্যা থেকে এক বিয়োগ করুন, কারণ প্রথম বোতামটি সবসময় পাওয়ার বোতাম হয়।

বোতাম প্রেস করার জন্য কীকোড

নিচের টেবিলে দেখানো হয়েছে যে প্রতিটি বোতামকে KeyEvent ক্লাসের int কনস্ট্যান্টের সাথে ম্যাপ করা হয়েছে:

বোতাম KeyEvent
মাল্টিফাংশন বোতাম ১ KEYCODE_STEM_1
মাল্টিফাংশন বোতাম ২ KEYCODE_STEM_2
মাল্টিফাংশন বোতাম ৩ KEYCODE_STEM_3

উপলভ্য বোতামের সংখ্যা কীভাবে পেতে হয় তা নিম্নলিখিত উদাহরণ কোড থেকে দেখুন:

val count = WearableButtons.getButtonCount(context)

if (count > 1) {
    Log.d(TAG, "More than one button available")
}

val buttonInfo = WearableButtons.getButtonInfo(
    activity,
    KeyEvent.KEYCODE_STEM_1
)

if (buttonInfo == null) {
    // KEYCODE_STEM_1 is unavailable
    Log.d(TAG, "KEYCODE_STEM_1 not available")
} else {
    // KEYCODE_STEM_1 is present on the device
    Log.d(TAG, "KEYCODE_STEM_1 is present on the device")
}

হ্যান্ডেল বোতাম প্রেস করা

আপনার অ্যাপ হ্যান্ডেল করতে পারে এমন সম্ভাব্য বোতাম কীকোডের সংখ্যা অনেক:

  • KEYCODE_STEM_1।
  • KEYCODE_STEM_2।

আপনার অ্যাপ এইসব কী কোড পেতে এবং সেগুলিকে অ্যাপ-মধ্যস্থ নির্দিষ্ট অ্যাকশনে কনভার্ট করতে পারে।

বোতাম প্রেস করা হ্যান্ডেল করতে, onKeyDown() মেথড প্রয়োগ করুন।

যেমন, এই প্রয়োগ কোনও অ্যাপে অ্যাকশন কন্ট্রোল করার জন্য বোতাম প্রেস করার প্রতিক্রিয়া জানায়:

override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
    return if (event?.repeatCount == 0) {
        when (keyCode) {
            KeyEvent.KEYCODE_STEM_1 -> {
                Log.d(TAG, "KEYCODE_STEM_1 pressed")
                true
            }
            KeyEvent.KEYCODE_STEM_2 -> {
                Log.d(TAG, "KEYCODE_STEM_2 pressed")
                true
            }
            else -> {
                super.onKeyDown(keyCode, event)
            }
        }
    } else {
        super.onKeyDown(keyCode, event)
    }
}

বোতামের পজিশন নির্ধারণ করা

AndroidX লাইব্রেরি দুটি পদ্ধতি প্রদান করে যা একটি বোতামের লোকেশন বর্ণনা করে:

  • WearableButtons.getButtonLabel() ডিভাইসে বোতামের সাধারণ প্লেসমেন্ট বর্ণনা করে এমন একটি লোকাল স্ট্রিং রিটার্ন করে।
  • WearableButtons.getButtonIcon() ডিভাইসে বোতামের সাধারণ প্লেসমেন্টকে প্রতিনিধিত্বকারী একটি আইকন রিটার্ন করে।

এইসব API আপনার অ্যাপের প্রয়োজন পূরণ করতে না পারলে, আপনি WearableButtons.getButtonInfo() API-ও ব্যবহার করতে পারেন। এর মাধ্যমে স্ক্রিনে বোতামের লোকেশন পাওয়া যায় এবং আরও কাস্টমাইজড উপায়ে এটি ম্যানেজ করা যায়। API সম্পর্কে আরও জানতে, Wear API রেফারেন্স দেখুন।