Помощник по быстрым клавишам

Справочник по сочетаниям клавиш помогает пользователям находить сочетания клавиш для платформы и открытых приложений. Опубликуйте сочетания клавиш для своего приложения в помощнике по сочетаниям клавиш, чтобы повысить удобство использования и производительность.

Чтобы открыть экран с быстрыми клавишами, пользователи нажимают Meta +/. Эта функция доступна в Android 7.0 (уровень API 24) и более поздних версиях.

Приложение, открытое на устройстве, на котором показаны системные сочетания клавиш.
Рисунок 1. Помощник по быстрым клавишам.

Предоставлять быстрые клавиши для справочника по быстрым клавишам

Вы можете предоставить списки доступных быстрых клавиш в Помощник по быстрым клавишам, переопределив обратный вызов окна onProvideKeyboardShortcuts(). В следующем фрагменте кода показано, как с помощью onProvideKeyboardShortcuts() добавить группу из четырех ярлыков:

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 – сочетание клавиш. Список быстрых клавиш упакован в объект KeyboardShortcutGroup. Приложения сообщают о доступных сочетаниях клавиш помощнику по сочетаниям клавиш, добавляя объекты KeyboardShortcutGroup в изменяемый список, переданный в качестве первого параметра метода.

Как упорядочить быстрые клавиши с помощью групп

Помощник по сочетаниям клавиш показывает их в отдельных группах, чтобы пользователи могли находить сочетания клавиш по вариантам использования или для экранов вашего приложения. На рисунке 2 показаны сочетания клавиш, разделенные на две группы: перемещение курсора и редактирование сообщений.

Приложение, открытое на устройстве, на котором показаны группы сочетаний клавиш.
Рисунок 2. Категории в Справочнике по сочетаниям клавиш.

Приложение регистрирует две или более групп сочетаний клавиш, создавая объект KeyboardShortcutGroup для каждой группы. В следующем фрагменте кода два объекта KeyboardShortCutGroup добавляются в изменяемый список, передаваемый методу onProvideKeyboardShortcuts(). Объекты отображаются в виде категорий в помощнике по сочетаниям клавиш, как показано на рисунке 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)
}

Как открыть помощника по сочетаниям клавиш с помощью кода

Приложения показывают экран с быстрыми клавишами, вызывая метод requestShowKeyboardShortcuts(). В приведенном ниже фрагменте помощник по сочетаниям клавиш открывается, когда пользователи нажимают кнопку или клавишу Ввод.

val activity = LocalActivity.current

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