Pomoc dotycząca skrótów klawiszowych

Pomocnik skrótów klawiszowych umożliwia użytkownikom odkrywanie skrótów klawiszowych na platformie i otwieranie aplikacji. Opublikuj skróty aplikacji w Pomocniku skrótów klawiszowych, aby zwiększyć produktywność użytkowników i ułatwić im korzystanie z aplikacji.

Użytkownicy naciskają Meta+/, aby otworzyć ekran skrótów klawiszowych, który jest dostępny w Androidzie 7.0 (interfejs API na poziomie 24) i nowszym.

Aplikacja otwarta na urządzeniu, na którym wyświetlane są skróty systemowe.
Rysunek 1. Pomocnik skrótów klawiszowych.

Udostępnianie skrótów w Pomocniku skrótów klawiszowych

Możesz udostępnić listy dostępnych skrótów klawiszowych w Pomocniku skrótów klawiszowych, zastępując onProvideKeyboardShortcuts() wywołanie zwrotne okna. Poniższy fragment kodu pokazuje implementację onProvideKeyboardShortcuts() umożliwiającą dodanie 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 jest opakowana jako obiekt KeyboardShortcutGroup. Aplikacje powiadamiają Pomocnika skrótów klawiszowych o dostępnych skrótach klawiszowych, dodając obiekty KeyboardShortcutGroup do listy modyfikowalnej przekazywanej jako pierwszy parametr metody.

Porządkowanie skrótów klawiszowych za pomocą grup

Pomocnik skrótów klawiszowych wyświetla skróty klawiszowe w osobnych grupach dzięki czemu użytkownicy mogą znajdować skróty według przypadku użycia lub ekranów aplikacji. Rysunek 2 przedstawia skróty klawiszowe podzielone na 2 grupy: ruch kursora i edytowanie wiadomości.

Aplikacja otwarta na urządzeniu, na którym widać grupy skrótów.
Rysunek 2. Kategorie w Pomocniku skrótów klawiszowych.

Aplikacja rejestruje co najmniej 2 grupy skrótów klawiszowych, tworząc obiekt KeyboardShortcutGroup dla każdej grupy. W poniższym fragmencie kodu do listy modyfikowalnej przekazywanej do metody onProvideKeyboardShortcuts() dodawane są 2 obiekty KeyboardShortCutGroup. Obiekty są wyświetlane jako kategorie w Pomocniku skrótów klawiszowych, jak pokazano 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)
}

Otwieranie Pomocnika skrótów klawiszowych z poziomu kodu

Aplikacje wyświetlają ekran skrótów klawiszowych, wywołując metodę requestShowKeyboardShortcuts(). W poniższym fragmencie kodu Pomocnik skrótów klawiszowych otwiera się, gdy użytkownicy klikną przycisk lub naciśną klawisz Enter.

val activity = LocalActivity.current

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