Physische Tasten

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:

Eine Smartwatch mit mehreren Seitentasten. Das System legt eine der Tasten als Multifunktionstaste fest.
Abbildung 1. Wear OS-Fitness-App mit Multifunktionstasten

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:

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.