Pomoc do skrótów klawiszowych

Asystent skrótów klawiszowych umożliwia użytkownikom poznanie skrótów klawiszowych platformy i otwieranie aplikacji. Opublikuj skróty do aplikacji w pomocniku skrótów klawiszowych, aby zwiększyć produktywność użytkowników i ułatwić korzystanie z nich.

Użytkownicy mogą nacisnąć Meta+/, aby otworzyć ekran skrótów klawiszowych, który jest dostępny na Androidzie 7.0 (poziom interfejsu API 24) i nowszych wersjach.

Rysunek 1. Pomoc do skrótów klawiszowych.

Podawanie skrótów do Asystenta skrótów klawiszowych

Możesz udostępnić listę dostępnych skrótów klawiszowych do pomocnika skrótów klawiszowych, zastępując wywołanie zwrotne w oknie onProvideKeyboardShortcuts(). Ten fragment kodu pokazuje implementację onProvideKeyboardShortcuts() w celu dodania grupy 4 skrótów:

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)
    }
}

KeyboardShortcutInfo opisuje skrót klawiszowy. Lista skrótów klawiszowych ma postać obiektu KeyboardShortcutGroup. Aplikacje powiadamiają o dostępnych skrótach klawiszowych do Asystenta skrótów klawiszowych, dodając obiekty KeyboardShortcutGroup do listy zmiennych, która jest przekazywana jako pierwszy parametr metody.

Organizowanie skrótów klawiszowych za pomocą grup

Asystent skrótów klawiszowych wyświetla skróty klawiszowe w osobnych grupach, dzięki czemu użytkownicy mogą je odnaleźć według przypadku użycia lub na różnych ekranach aplikacji. Rysunek 2 przedstawia skróty klawiszowe podzielone na 2 grupy: ruch kursora i edytowanie wiadomości.

Rysunek 2. Kategorie w Pomocy do skrótów klawiszowych.

Aplikacja rejestruje co najmniej 2 grupy skrótów klawiszowych, tworząc dla każdej z nich obiekt KeyboardShortcutGroup. W podanym niżej fragmencie kodu do listy zmiennych przekazanej do metody onProvideKeyboardShortcuts() dodano 2 obiekty KeyboardShortCutGroup. Obiekty są wyświetlane w Pomocy skrótów klawiszowych jako kategorie, tak jak na rysunku 2.

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)
}

Otwórz Asystenta skrótów klawiszowych z poziomu kodu

Aplikacje wyświetlają ekran skrótów klawiszowych przez wywołanie metody requestShowKeyboardShortcuts(). W tym fragmencie aplikacji Skróty klawiszowe otwiera się, gdy użytkownicy klikają przycisk lub naciskają Enter.

val activity = LocalContext.current as Activity

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