Fiziksel düğmeler

Giyilebilir bir cihazda genellikle _stems_ olarak da bilinen birden fazla fiziksel düğme bulunur. Wear OS cihazların her zaman en az bir düğmesi vardır: güç düğmesi. Bunun dışında, sıfır ya da daha fazla çok işlevli düğmeler olabilir.

Uygulamanızda, işlemlere çok işlevli düğmeler atayabilirsiniz. Örneğin, bir fitness uygulaması çok işlevli düğmeleri kullanarak bir antrenmanı başlatabilir veya duraklatabilir:

Not: Wear OS 3.0, OS için iki düğmeyi ayırırken Wear OS 2.0 yalnızca bir tanesini ayırır. Bu, atayabileceğiniz düğmelerin sayısını azaltır .

Uygun kullanım alanları ve tasarımla ilgili hususlar için Wear OS tasarım ilkeleri.

Bu kılavuzda, web sitenizdeki mevcut çok işlevli düğmelerle ilgili bilgilerin nasıl alınacağı nasıl işlediğini konuştuk.

Düğme meta verileri

Bir cihazdaki düğmeler hakkında ek bilgi almak için şurada tanımlanan API'yi kullanın: Wear Girişi AndroidX kitaplığı. URL'yi uygulama modülünüzün build.gradle dosyasında aşağıdaki bağımlılığı gösterilmektedir:

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

Düğme sayısı

Cihazda kaç düğme olduğunu öğrenmek için WearableButtons.getButtonCount() yöntemini çağırın. Bu yöntemde güç düğmesi, Yani yöntem birden büyük bir değer döndürürse, o zaman kullanılabilecek çok işlevli düğmeler . Atanabilir çok işlevli düğmelerin sayısını doğru şekilde elde etmek için düğmelerin üzerinde İlk düğme her zaman güç düğmesi olduğundan

Düğmelere basma için tuş kodları

Her düğme, KeyEvent değerindeki bir int sabitiyle eşlenir. sınıfını değiştirin:

Düğme KeyEvent
Çok işlevli düğme 1 KEYCODE_STEM_1
Çok işlevli düğme 2 KEYCODE_STEM_2
Çok işlevli düğme 3 KEYCODE_STEM_3

Aşağıdaki örnek kod, kullanılabilir düğmeyi nasıl alacağınızı gösterir sayı:

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
}

Basılan kol düğmesi

Uygulamanızın işleyebileceği birkaç olası düğme anahtar kodu vardır:

  • KEYCODE_STEM_1
  • KEYCODE_STEM_2
  • KEYCODE_STEM_3

Uygulamanız bu anahtar kodlarını alıp belirli uygulama içi işlemlere dönüştürebilir.

Düğmeye basma işlemini işlemek için onKeyDown() yöntemini çağırın.

Örneğin, bu uygulama, kontrol paneli üzerindeki düğmelere basıldığında, uygulamadaki işlemler:

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

Düğme konumlarını belirleme

AndroidX Kitaplığı, bir düğmenin konumunu açıklayan iki yöntem sağlar:

Not: Metin açıklayıcılar kullanmaktan kaçınmanızı öneririz. bahsetmek istiyorum. Bunun yerine görsel göstergeler kullanın. Ancak, düğme açıklamanın daha anlamlı olacağı bazı durumlar olabilir.

Önceki yöntemler basit açıklamalar için tasarlanmıştı. Bu API'ler uygulamanızınkine uymuyorsa almak istiyorsanız WearableButtons.getButtonInfo() API'yi kullanarak yerine koymalı ve bunu daha özelleştirilmiş bir şekilde yapmalı. Daha fazla daha fazla bilgi için Wear API referansı.