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:
-
WearableButtons.getButtonLabel()
, düğmenin genel konumuna göre değişiyor. -
WearableButtons.getButtonIcon()
, genel düğmenin yerini belirleyin.
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ı.