Ein am Körper tragbares Gerät enthält in der Regel mehrere physische Tasten, die auch als _stems_ bezeichnet werden. Wear OS haben Geräte immer mindestens eine Taste: die Ein/Aus-Taste. Darüber hinaus werden null oder mehr Multifunktionstasten vorhanden sein.
In Ihrer App können Sie Aktionen Multifunktionsschaltflächen zuweisen. Beispiel: Eine Fitness-App ein Training mit Multifunktionstasten starten oder pausieren:
Hinweis:Bei Wear OS 3.0 werden zwei Schaltflächen für das Betriebssystem reserviert, während Für Wear OS 2.0 wird nur eine davon reserviert. Dadurch können Sie weniger Schaltflächen zuweisen Aktionen an.
Informationen zu geeigneten Anwendungsfällen und Designüberlegungen finden Sie in den Designprinzipien für Wear OS:
In diesem Leitfaden wird beschrieben, wie Sie Informationen zu verfügbaren Multifunktionsschaltflächen auf und wie Tastenbetätigungen verarbeitet werden.
Metadaten der Schaltfläche
Zusätzliche Informationen zu den Schaltflächen auf einem Gerät erhalten Sie über die in den
Wear Input – AndroidX-Bibliothek. Fügen Sie den
folgende Abhängigkeit in der Datei build.gradle
deines App-Moduls:
dependencies { implementation "androidx.wear:wear-input:1.0.0" }
Anzahl der Tasten
Um herauszufinden, wie viele Tasten auf dem Gerät verfügbar sind, verwende die
<ph type="x-smartling-placeholder"></ph>
WearableButtons.getButtonCount()
-Methode. Dazu gehören die Ein/Aus-Taste,
Gibt die Methode also einen Wert größer als eins zurück, sind Multifunktionsschaltflächen
zu verwenden. Die Anzahl der zuweisbaren Multifunktionsschaltflächen erhalten Sie, indem Sie subtrahieren
eine aus dem Zählerwert, da die erste Taste immer die Ein/Aus-Taste ist.
Tastencodes für das Drücken von Tasten
Jede Schaltfläche wird einer int
-Konstante aus KeyEvent
zugeordnet.
enthalten, wie in der folgenden Tabelle dargestellt:
Schaltfläche | Schlüsselereignis |
---|---|
Multifunktionstaste 1 | KEYCODE_STEM_1
|
Multifunktionstaste 2 | KEYCODE_STEM_2
|
Multifunktionstaste 3 | KEYCODE_STEM_3
|
Der folgende Beispielcode zeigt, wie Sie die verfügbare Schaltfläche abrufen. Anzahl:
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 }
Tastendrücke im Griff
Es gibt eine Reihe von Tastencodes, die Ihre App verarbeiten kann:
-
KEYCODE_STEM_1
-
KEYCODE_STEM_2
-
KEYCODE_STEM_3
Ihre App kann diese Schlüsselcodes empfangen und in bestimmte In-App-Aktionen umwandeln.
Implementieren Sie die Methode
<ph type="x-smartling-placeholder"></ph>
onKeyDown()
-Methode.
Diese Implementierung reagiert z. B. auf das Drücken von Schaltflächen, um Aktionen in einer App:
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); }
Schaltflächenpositionen festlegen
Die AndroidX-Bibliothek bietet zwei Methoden, um die Position einer Schaltfläche zu beschreiben:
- <ph type="x-smartling-placeholder"></ph>
WearableButtons.getButtonLabel()
gibt einen lokalisierten String zurück, der die Position der Taste auf dem Gerät. - <ph type="x-smartling-placeholder"></ph>
WearableButtons.getButtonIcon()
gibt ein Symbol zurück, das den allgemeinen Position der Taste auf dem Gerät.
Hinweis:Wir raten davon ab, Beschreibungen in Textform zu verwenden. bei der Beschreibung von Schaltflächen und ihrer Funktionen. Verwenden Sie stattdessen visuelle Indikatoren. Es kann jedoch vorkommen, in denen die Beschreibung einer Schaltfläche sinnvoller ist.
Die vorherigen Methoden waren auf einfache Beschreibungen ausgelegt. Wenn diese APIs nicht zu den
können Sie auch die WearableButtons.getButtonInfo()
API verwenden, um den
Position der Schaltfläche auf dem Bildschirm an und passen sie individuell an. Weitere Informationen
Informationen zu den APIs finden Sie in der
Referenz zur Wear API