Fiziksel düğmeler

Giyilebilir bir cihaz genellikle _stems_ olarak da bilinen birden çok fiziksel düğme içerir. Wear OS cihazlarında daima en azından tek bir düğme bulunur: güç düğmesi. Bunların dışında, sıfır veya daha fazla çok işlevli düğme mevcut olabilir.

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

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

Uygun kullanım alanları ve tasarım değerlendirmeleri için Wear OS tasarım ilkelerini inceleyin.

Bu kılavuzda, bir cihazdaki çok işlevli düğmelerle ilgili bilgilerin nasıl alınacağı ve düğmelere basılma işlemlerinin nasıl gerçekleştirileceği açıklanmaktadır.

Düğme meta verileri

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

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 kullanın. Bu yöntemde güç düğmesi de bulunur. Bu nedenle, yöntem birden büyük bir değer döndürürse kullanılabilen çok işlevli düğmeler vardır. Atanabilir çok işlevli düğmelerin sayısını doğru şekilde elde etmek için ilk düğme her zaman güç düğmesi olduğundan sayılardan bir tane çıkarın.

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

Her düğme, aşağıdaki tabloda gösterildiği gibi KeyEvent sınıfındaki bir int sabitiyle eşlenir:

Düğme Önemli etkinlik
Ç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üğme sayısının nasıl alınacağını gösterir:

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
}

Tutamaç düğmesine basılanlar

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ı alabilir ve belirli uygulama içi işlemlere dönüştürebilir.

Bir düğmeye basma işlemini işlemek için onKeyDown() yöntemini uygulayın.

Örneğin bu uygulama, bir uygulamadaki işlemleri kontrol etmek için düğmelere basılmaya tepki verir:

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 Library, bir düğmenin konumunu açıklayan iki yöntem sağlar:

Not: Düğmeleri ve işlevlerini açıklarken metin tanımlayıcılar kullanmaktan kaçınmanızı öneririz. Bunun yerine görsel göstergeler kullanın. Bununla birlikte, bir düğmeyi açıklamanın daha mantıklı olduğu bazı durumlar olabilir.

Önceki yöntemler, basit açıklamalar için tasarlanmıştır. Bu API'ler uygulamanızın ihtiyaçlarını karşılamıyorsa düğmenin ekrandaki konumunu almak ve düğmeyi daha özelleştirilmiş bir şekilde kullanmak için WearableButtons.getButtonInfo() API'yi de kullanabilirsiniz. API'ler hakkında daha fazla bilgi için Wear API referansına bakın.