键盘快捷键辅助工具

借助键盘快捷键助手,用户可以发现平台的键盘快捷键并打开应用。在键盘快捷键助手中发布应用的快捷键,有助于提高用户的工作效率和易用性。

用户可以按 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() 方法来显示键盘快捷键屏幕。在以下代码段中,当用户点按 或点击按钮或按Enter键时,键盘快捷键助手会打开。

val activity = LocalActivity.current

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