键盘快捷键辅助工具

借助键盘快捷键助手,用户可以了解 和打开应用。在键盘快捷键助手中发布应用的快捷键 提高用户的工作效率和易用性。

用户通过按 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 = LocalContext.current as Activity

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