Physische Tasten

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:

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