फ़िज़िकल बटन

पहने जाने वाले डिवाइस में आम तौर पर कई बटन होते हैं, जिन्हें _स्टेम्स_ भी कहा जाता है. Wear OS डिवाइसों में हमेशा कम से कम एक बटन होता है: पावर बटन. उसके बाद, शून्य या उससे ज़्यादा कई बटन मौजूद हो सकते हैं.

अपने ऐप्लिकेशन में, कार्रवाइयों के लिए कई फ़ंक्शन वाले बटन असाइन किए जा सकते हैं. उदाहरण के लिए, किसी फ़िटनेस ऐप्लिकेशन मल्टीफ़ंक्शन बटन का इस्तेमाल करके वर्कआउट शुरू या रोका जा सकता है:

ध्यान दें: Wear OS 3.0 में, ओएस के लिए दो बटन होते हैं. हालांकि, Wear OS 2.0 सिर्फ़ एक को सुरक्षित रखता है. इससे असाइन किए जा सकने वाले बटन की संख्या कम हो जाती है के लिए कार्रवाइयां.

सही इस्तेमाल के उदाहरण और डिज़ाइन से जुड़ी ज़रूरी बातों के लिए, इन चीज़ों की समीक्षा करें: Wear OS के डिज़ाइन से जुड़े सिद्धांत.

इस गाइड में, एक से ज़्यादा फ़ंक्शन वाले बटनों के बारे में जानकारी पाने का तरीका बताया गया है और बटन दबाने पर कार्रवाई करने का तरीक़ा बताया गया है.

बटन का मेटाडेटा

किसी डिवाइस पर मौजूद बटन के बारे में ज़्यादा जानकारी पाने के लिए, Wear इनपुट की AndroidX लाइब्रेरी. जोड़ें आपके ऐप्लिकेशन मॉड्यूल की build.gradle फ़ाइल में, नीचे दी गई डिपेंडेंसी का इस्तेमाल किया जा रहा है:

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

बटन की संख्या

यह पता लगाने के लिए कि डिवाइस पर कितने बटन उपलब्ध हैं, WearableButtons.getButtonCount() तरीका. इस तरीके में पावर बटन, इसलिए, अगर यह तरीका एक से ज़्यादा वैल्यू दिखाता है, तो मल्टीफ़ंक्शन बटन उपलब्ध होते हैं इस्तेमाल करें. असाइन किए जा सकने वाले मल्टीफ़ंक्शन बटन की सटीक गिनती पाने के लिए, गिनती में से एक है, क्योंकि पहला बटन हमेशा पावर बटन होता है.

बटन दबाने के लिए कीकोड

हर बटन, KeyEvent के int कॉन्स्टेंट के साथ मैप किया जाता है क्लास के बारे में ज़्यादा जानें, जैसा कि नीचे दी गई टेबल में दिखाया गया है:

बटन मुख्य इवेंट
मल्टीफ़ंक्शन बटन 1 KEYCODE_STEM_1
कई फ़ंक्शन वाला बटन 2 KEYCODE_STEM_2
मल्टीफ़ंक्शन बटन 3 KEYCODE_STEM_3

नीचे दिए गए उदाहरण में, उपलब्ध बटन को ऐक्सेस करने का तरीका बताया गया है संख्या:

Kotlin

val count = WearableButtons.getButtonCount(context)

if (count > 1) {
    // There are multifunction buttons available
}

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

if (buttonInfo == null) {
    // KEYCODE_STEM_1 is unavailable
} else {
    // KEYCODE_STEM_1 is present on the device
}

Java

int count = WearableButtons.getButtonCount(context);

if (count > 1) {
  // There are multifunction buttons available
}

WearableButtons.ButtonInfo buttonInfo =
  WearableButtons.getButtonInfo(activity, KeyEvent.KEYCODE_STEM_1);

if (buttonInfo == null) {
  // KEYCODE_STEM_1 is unavailable
} else {
  // KEYCODE_STEM_1 is present on the device
}

बटन दबाने पर हैंडल करना

आपका ऐप्लिकेशन, बटन के कई ऐसे कीकोड इस्तेमाल कर सकता है:

  • KEYCODE_STEM_1
  • KEYCODE_STEM_2
  • KEYCODE_STEM_3

आपके ऐप्लिकेशन को ये कुंजी कोड मिल सकते हैं और वह उन्हें खास इन-ऐप्लिकेशन कार्रवाइयों में बदल सकता है.

एक बटन दबाने के लिए, onKeyDown() तरीका.

उदाहरण के लिए, लागू करने का यह तरीका कंट्रोल करने के लिए बटन दबाने पर रिस्पॉन्स देता है ऐप में कार्रवाइयां:

Kotlin

// Activity
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
    return if (event.repeatCount == 0) {
        when (keyCode) {
            KeyEvent.KEYCODE_STEM_1 -> {
                // Do stuff
                true
            }
            KeyEvent.KEYCODE_STEM_2 -> {
                // Do stuff
                true
            }
            KeyEvent.KEYCODE_STEM_3 -> {
                // Do stuff
                true
            }
            else -> {
                super.onKeyDown(keyCode, event)
            }
        }
    } else {
        super.onKeyDown(keyCode, event)
    }
}

Java

@Override
// Activity
public boolean onKeyDown(int keyCode, KeyEvent event){
  if (event.getRepeatCount() == 0) {
    if (keyCode == KeyEvent.KEYCODE_STEM_1) {
      // Do stuff
      return true;
    } else if (keyCode == KeyEvent.KEYCODE_STEM_2) {
      // Do stuff
      return true;
    } else if (keyCode == KeyEvent.KEYCODE_STEM_3) {
      // Do stuff
      return true;
    }
  }
  return super.onKeyDown(keyCode, event);
}

बटन की स्थिति पता करना

AndroidX लाइब्रेरी में किसी बटन की जगह के बारे में जानकारी देने के लिए, दो तरीके होते हैं:

  • WearableButtons.getButtonLabel(), स्थानीय भाषा में लिखी गई स्ट्रिंग दिखाता है जो डिवाइस पर बटन की सामान्य जगह.
  • WearableButtons.getButtonIcon(), सामान्य जानकारी दिखाने वाला आइकॉन दिखाता है बटन कहां पर लगा होगा.

ध्यान दें: हमारा सुझाव है कि आप टेक्स्ट वाले डिस्क्रिप्टर का इस्तेमाल करने से बचें लेख पढ़ें. इसके बजाय, विज़ुअल इंडिकेटर का इस्तेमाल करें. हालांकि, कुछ मामलों में बटन के बारे में जानकारी देना ज़्यादा सही होता है.

पहले के तरीके आसान जानकारी के लिए डिज़ाइन किए गए थे. अगर ये एपीआई आपके ऐप्लिकेशन की की ज़रूरत है, तो आप पाने के लिए WearableButtons.getButtonInfo() API का इस्तेमाल भी कर सकते हैं स्क्रीन पर बटन की जगह को चुनें और उसे अपने हिसाब से मैनेज करें. ज़्यादा के लिए जानकारी के लिए, देखें, तो Wear API के लिए रेफ़रंस.