Assistent für Tastenkombinationen

Mit dem Tastaturkürzel-Assistenten können Nutzer Tastenkombinationen für die Plattform und zum Öffnen von Apps entdecken. Veröffentlichen Sie die Tastenkombinationen Ihrer App in der Hilfe für Tastenkombinationen, um die Produktivität und Nutzerfreundlichkeit der Nutzer zu verbessern.

Nutzer drücken Meta+/, um den Bildschirm mit den Tastenkombinationen zu öffnen, der unter Android 7.0 (API-Level 24) und höher verfügbar ist.

Abbildung 1: Assistent für Tastenkombinationen.

Tastenkombinationen für die Hilfe für Tastenkombinationen bereitstellen

Sie können die verfügbaren Liste der Tastenkombinationen für die Tastenkürzel-Hilfe bereitstellen, indem Sie den Callback im onProvideKeyboardShortcuts()-Fenster überschreiben. Das folgende Snippet zeigt eine Implementierung von onProvideKeyboardShortcuts(), mit der eine Gruppe von vier Tastenkombinationen hinzugefügt wird:

class MainActivity : ComponentActivity() {
    // Activity codes such as overridden onStart method.

    override fun onProvideKeyboardShortcuts(
        data: MutableList<KeyboardShortcutGroup>?,
        menu: Menu?,
        deviceId: Int
    ) {
        val shortcutGroup = KeyboardShortcutGroup(
            "Cursor movement",
            listOf(
                KeyboardShortcutInfo("Up", KeyEvent.KEYCODE_P, KeyEvent.META_CTRL_ON),
                KeyboardShortcutInfo("Down", KeyEvent.KEYCODE_N, KeyEvent.META_CTRL_ON),
                KeyboardShortcutInfo("Forward", KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON),
                KeyboardShortcutInfo("Backward", KeyEvent.KEYCODE_B, KeyEvent.META_CTRL_ON),
            )
        )
        data?.add(shortcutGroup)
    }
}

In KeyboardShortcutInfo wird eine Tastenkombination beschrieben. Die Liste der Tastenkombinationen ist als KeyboardShortcutGroup-Objekt umschlossen. In Apps werden verfügbare Tastenkombinationen an die Tastenkürzel-Hilfe gesendet, indem die KeyboardShortcutGroup-Objekte der änderbaren Liste hinzugefügt werden, die als erster Parameter der Methode übergeben wird.

Tastenkombinationen in Gruppen organisieren

Im Hilfetool für Tastenkürzel werden die Tastenkombinationen in separaten Gruppen angezeigt, damit Nutzer die Tastenkombinationen je nach Anwendungsfall oder für App-Bildschirme finden können. Abbildung 2 zeigt die Tastenkombinationen in zwei Gruppen: Cursorbewegung und Nachrichtenbearbeitung.

Abbildung 2. Kategorien im Hilfebereich für Tastenkombinationen.

Ihre App registriert zwei oder mehr Gruppen von Tastenkombinationen, indem für jede Gruppe ein KeyboardShortcutGroup-Objekt erstellt wird. Im folgenden Snippet werden der änderbaren Liste, die an die Methode onProvideKeyboardShortcuts() übergeben wird, zwei KeyboardShortCutGroup-Objekte hinzugefügt. Die Objekte werden in der Tastenkürzel-Hilfe als Kategorien angezeigt, wie in Abbildung 2 dargestellt.

override fun onProvideKeyboardShortcuts(
    data: MutableList<KeyboardShortcutGroup>?,
    menu: Menu?,
    deviceId: Int
) {
    val cursorMovement = KeyboardShortcutGroup(
        "Cursor movement",
        listOf(
            KeyboardShortcutInfo("Up", KeyEvent.KEYCODE_P, KeyEvent.META_CTRL_ON),
            KeyboardShortcutInfo("Down", KeyEvent.KEYCODE_N, KeyEvent.META_CTRL_ON),
            KeyboardShortcutInfo("Forward", KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON),
            KeyboardShortcutInfo("Backward", KeyEvent.KEYCODE_B, KeyEvent.META_CTRL_ON),
        )
    )

    val messageEdit = KeyboardShortcutGroup(
        "Message editing",
        listOf(
            KeyboardShortcutInfo("Select All", KeyEvent.KEYCODE_A, KeyEvent.META_CTRL_ON),
            KeyboardShortcutInfo("Send a message", KeyEvent.KEYCODE_ENTER, KeyEvent.META_SHIFT_ON)
        )
    )

    data?.add(cursorMovement)
    data?.add(messageEdit)
}

Hilfe für Tastenkombinationen über den Code öffnen

In Apps wird der Bildschirm mit den Tastenkombinationen durch Aufrufen der Methode requestShowKeyboardShortcuts() angezeigt. Im folgenden Snippet wird die Hilfe für Tastenkombinationen geöffnet, wenn Nutzer auf die Schaltfläche tippen oder klicken oder die Eingabetaste drücken.

val activity = LocalContext.current as Activity

Button(onClick = { activity.requestShowKeyboardShortcuts() }) {
    Text(text = "Show keyboard shortcuts")
}