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:
-
WearableButtons.getButtonLabel()
, düğmenin cihazdaki genel yerleşimini açıklayan yerelleştirilmiş bir dize döndürür. -
WearableButtons.getButtonIcon()
, düğmenin cihazdaki genel yerleşimini temsil eden bir simge döndürür.
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.