Ein Wearable hat in der Regel mehrere physische Tasten, auch Stems genannt. Wear OS-Geräte haben immer mindestens eine Taste: die Ein/Aus-Taste. Darüber hinaus können null oder mehr Multifunktionstasten vorhanden sein. Einige Geräte haben auch eine physische drehbare Seitentaste.
In Ihrer App können Sie Multifunktionstasten Aktionen zuweisen, die ausgeführt werden, wenn Ihre App im Vordergrund ist. Eine Fitness-App kann beispielsweise ein Training über Multifunktionstasten starten oder pausieren:

Geeignete Anwendungsfälle und Designüberlegungen finden Sie unter Designprinzipien für Wear OS.
In diesem Dokument wird beschrieben, wie Sie Informationen zu verfügbaren Multifunktionstasten auf einem Gerät abrufen und Tastendrücke verarbeiten.
Schaltflächenmetadaten
Wenn Sie zusätzliche Informationen zu den Tasten auf einem Gerät erhalten möchten, verwenden Sie die API, die in der AndroidX-Bibliothek Wear Input definiert ist. Fügen Sie der Datei build.gradle
Ihres App-Moduls die folgende Abhängigkeit hinzu:
dependencies {
implementation "androidx.wear:wear-input:1.2.0"
}
Anzahl der Schaltflächen
Bestimmen Sie, wie viele Tasten auf dem Gerät verfügbar sind, indem Sie die Methode
WearableButtons.getButtonCount()
verwenden. Diese Methode umfasst den Ein/Aus-Schalter. Wenn die Methode also einen Wert größer als eins zurückgibt, sind Multifunktionstasten verfügbar. Um die genaue Anzahl der zuweisbaren Multifunktionstasten zu ermitteln, ziehen Sie eins von der Anzahl ab, da die erste Taste immer die Ein/Aus-Taste ist.
Tastencodes für Tastendrücke
Jede Schaltfläche wird einer int
-Konstante aus der Klasse KeyEvent
zugeordnet, wie in der folgenden Tabelle dargestellt:
Schaltfläche | KeyEvent |
---|---|
Multifunktionstaste 1 | KEYCODE_STEM_1 |
Multifunktionstaste 2 | KEYCODE_STEM_2 |
Multifunktionstaste 3 | KEYCODE_STEM_3 |
Der folgende Beispielcode zeigt, wie die Anzahl der verfügbaren Schaltflächen abgerufen wird:
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") }
Tastendrücke verarbeiten
Es gibt eine Reihe möglicher Tastencodes für Schaltflächen, die Ihre App verarbeiten kann:
KEYCODE_STEM_1
.KEYCODE_STEM_2
.
Ihre App kann diese Schlüsselcodes empfangen und in bestimmte In-App-Aktionen umwandeln.
Implementieren Sie die Methode onKeyDown()
, um das Drücken einer Taste zu verarbeiten.
Bei dieser Implementierung wird beispielsweise auf Tastendrücke reagiert, um Aktionen in einer App zu steuern:
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) } }
Schaltflächenpositionen festlegen
Die AndroidX-Bibliothek bietet zwei Methoden, mit denen die Position einer Schaltfläche beschrieben wird:
WearableButtons.getButtonLabel()
gibt einen lokalisierten String zurück, der die allgemeine Platzierung der Schaltfläche auf dem Gerät beschreibt.WearableButtons.getButtonIcon()
gibt ein Symbol zurück, das die allgemeine Platzierung der Schaltfläche auf dem Gerät darstellt.
Wenn diese APIs nicht den Anforderungen Ihrer App entsprechen, können Sie auch die WearableButtons.getButtonInfo()
API verwenden, um die Position der Schaltfläche auf dem Bildschirm abzurufen und sie auf benutzerdefinierte Weise zu verarbeiten. Weitere Informationen zu den APIs finden Sie in der Wear API-Referenz.