Giyilebilir cihazlar genellikle sap olarak da bilinen birden fazla fiziksel düğme içerir. Wear OS cihazlarda her zaman en az bir düğme (güç düğmesi) bulunur. Bunun dışında, sıfır veya daha fazla çok işlevli düğme olabilir. Bazı cihazlarda fiziksel olarak döndürülebilen bir yan düğme de bulunur.
Uygulamanızda, uygulamanız ön plandayken kullanılacak işlemler için çok işlevli düğmeler atayabilirsiniz. Örneğin, bir fitness uygulaması çok işlevli düğmeleri kullanarak antrenmanı başlatabilir veya duraklatabilir:

Uygun kullanım alanları ve tasarım hususları için Wear OS tasarım ilkeleri başlıklı makaleyi inceleyin.
Bu belgede, bir cihazdaki kullanılabilir çok işlevli düğmeler hakkında bilgilerin nasıl alınacağı ve düğme basma işlemlerinin nasıl işleneceği açıklanmaktadır.
Düğme meta verileri
Bir cihazdaki düğmeler hakkında daha fazla bilgi edinmek için Wear Input 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.2.0"
}
Düğme sayısı
Cihazda kaç düğmenin bulunduğunu belirlemek için WearableButtons.getButtonCount()
yöntemini kullanın. Bu yönteme güç düğmesi de dahildir. Bu nedenle, yöntem birden büyük bir değer döndürürse kullanılabilir çok işlevli düğmeler vardır. Atanabilir çok işlevli düğmelerin doğru sayısını elde etmek için sayıdan bir çıkarın. Çünkü ilk düğme her zaman güç düğmesidir.
Düğmeye basma işlemleri 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 | 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 kodda, kullanılabilir düğme sayısının nasıl alınacağı gösterilmektedir:
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") }
Düğmeye basma işlemlerini işleme
Uygulamanızın işleyebileceği çeşitli olası düğme tuş kodları vardır:
KEYCODE_STEM_1
.KEYCODE_STEM_2
.
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 uygulayın.
Örneğin, bu uygulama, bir uygulamadaki işlemleri kontrol etmek için düğme basma işlemlerine yanıt verir:
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) } }
Düğme konumlarını belirleme
AndroidX kitaplığı, bir düğmenin konumunu açıklayan iki yöntem sunar:
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.
Bu API'ler uygulamanızın ihtiyaçlarına uygun değilse WearableButtons.getButtonInfo()
API'yi kullanarak ekrandaki düğmenin konumunu alabilir ve daha özelleştirilmiş bir şekilde işleyebilirsiniz. API'ler hakkında daha fazla bilgi için Wear API referansı'na bakın.