Stay organized with collections
Save and categorize content based on your preferences.
Keyboard Shortcuts Helper enables users to discover keyboard shortcuts for the
platform and open apps. Publish your app's shortcuts in Keyboard Shortcuts Helper
to improve user productivity and ease of use.
Users press Meta+/ to open the keyboard shortcuts screen, which is
available on Android 7.0 (API level 24) and higher.
Figure 1. Keyboard Shortcuts Helper.
Provide shortcuts to Keyboard Shortcuts Helper
You can provide available keyboard shortcut lists to
Keyboard Shortcuts Helper by overriding the
onProvideKeyboardShortcuts() window callback.
The following snippet demonstrates an implementation of
onProvideKeyboardShortcuts() to add a group of four shortcuts:
classMainActivity:ComponentActivity(){// Activity codes such as overridden onStart method.overridefunonProvideKeyboardShortcuts(data:MutableList<KeyboardShortcutGroup>?,menu:Menu?,deviceId:Int){valshortcutGroup=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 describes a keyboard shortcut.
The list of keyboard shortcuts are wrapped as a
KeyboardShortcutGroup object.
Apps notify available keyboard shortcuts to Keyboard Shortcuts Helper by adding
the KeyboardShortcutGroup objects to the mutable list passed
as the first parameter of the method.
Organize keyboard shortcuts with groups
Keyboard Shortcuts Helper displays keyboard shortcuts in separate groups
so users can find shortcuts by use case or for screens of
your app. Figure 2 shows the keyboard shortcuts
categorized into two groups: cursor movement and message editing.
Figure 2. Categories in Keyboard Shortcuts Helper.
Your app registers two or more groups of keyboard shortcuts by creating a
KeyboardShortcutGroup object for each group.
In the following snippet, two KeyboardShortCutGroup objects are added to the
mutable list passed to the onProvideKeyboardShortcuts() method.
The objects are displayed as categories in Keyboard Shortcuts Helper as
figure 2 shows.
overridefunonProvideKeyboardShortcuts(data:MutableList<KeyboardShortcutGroup>?,menu:Menu?,deviceId:Int){valcursorMovement=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),))valmessageEdit=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)}
Open Keyboard Shortcuts Helper from code
Apps display the keyboard shortcuts screen by
calling the requestShowKeyboardShortcuts()
method. In the following snippet, Keyboard Shortcuts Helper opens when users tap
or click the button or press the Enter key.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-05-20 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-20 UTC."],[],[],null,["# Keyboard Shortcuts Helper enables users to discover keyboard shortcuts for the\nplatform and open apps. Publish your app's shortcuts in Keyboard Shortcuts Helper\nto improve user productivity and ease of use.\n\nUsers press \u003ckbd\u003eMeta+/\u003c/kbd\u003e to open the keyboard shortcuts screen, which is\navailable on [Android 7.0](/about/versions/nougat/android-7.0#keyboard_shortcuts_helper) (API level 24) and higher.\n**Figure 1.** Keyboard Shortcuts Helper. **Note:** The Meta key is not present on all keyboards. On macOS keyboards, the Meta key is the Command key; on Windows keyboards, the Windows key; and on ChromeOS keyboards, the Search key.\n\nProvide shortcuts to Keyboard Shortcuts Helper\n----------------------------------------------\n\nYou can provide available keyboard shortcut lists to\nKeyboard Shortcuts Helper by overriding the\n[`onProvideKeyboardShortcuts()`](/reference/kotlin/android/view/Window.Callback#onprovidekeyboardshortcuts) window callback.\nThe following snippet demonstrates an implementation of\n`onProvideKeyboardShortcuts()` to add a group of four shortcuts: \n\n class MainActivity : ComponentActivity() {\n // Activity codes such as overridden onStart method.\n\n override fun onProvideKeyboardShortcuts(\n data: MutableList\u003cKeyboardShortcutGroup\u003e?,\n menu: Menu?,\n deviceId: Int\n ) {\n val shortcutGroup = KeyboardShortcutGroup(\n \"Cursor movement\",\n listOf(\n KeyboardShortcutInfo(\"Up\", KeyEvent.KEYCODE_P, KeyEvent.META_CTRL_ON),\n KeyboardShortcutInfo(\"Down\", KeyEvent.KEYCODE_N, KeyEvent.META_CTRL_ON),\n KeyboardShortcutInfo(\"Forward\", KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON),\n KeyboardShortcutInfo(\"Backward\", KeyEvent.KEYCODE_B, KeyEvent.META_CTRL_ON),\n )\n )\n data?.add(shortcutGroup)\n }\n }\n\n[`KeyboardShortcutInfo`](/reference/kotlin/android/view/KeyboardShortcutInfo) describes a keyboard shortcut.\nThe list of keyboard shortcuts are wrapped as a\n[`KeyboardShortcutGroup`](/reference/kotlin/android/view/KeyboardShortcutGroup) object.\nApps notify available keyboard shortcuts to Keyboard Shortcuts Helper by adding\nthe `KeyboardShortcutGroup` objects to the mutable list passed\nas the first parameter of the method.\n\nOrganize keyboard shortcuts with groups\n---------------------------------------\n\nKeyboard Shortcuts Helper displays keyboard shortcuts in separate groups\nso users can find shortcuts by use case or for screens of\nyour app. [Figure 2](/static/images/develop/ui/touch-input/keyboard-input/keyboard_shortcut_group.png) shows the keyboard shortcuts\ncategorized into two groups: cursor movement and message editing.\n**Figure 2.** Categories in Keyboard Shortcuts Helper.\n\nYour app registers two or more groups of keyboard shortcuts by creating a\n`KeyboardShortcutGroup` object for each group.\nIn the following snippet, two `KeyboardShortCutGroup` objects are added to the\nmutable list passed to the `onProvideKeyboardShortcuts()` method.\nThe objects are displayed as categories in Keyboard Shortcuts Helper as\n[figure 2](/static/images/develop/ui/touch-input/keyboard-input/keyboard_shortcut_group.png) shows. \n\n override fun onProvideKeyboardShortcuts(\n data: MutableList\u003cKeyboardShortcutGroup\u003e?,\n menu: Menu?,\n deviceId: Int\n ) {\n val cursorMovement = KeyboardShortcutGroup(\n \"Cursor movement\",\n listOf(\n KeyboardShortcutInfo(\"Up\", KeyEvent.KEYCODE_P, KeyEvent.META_CTRL_ON),\n KeyboardShortcutInfo(\"Down\", KeyEvent.KEYCODE_N, KeyEvent.META_CTRL_ON),\n KeyboardShortcutInfo(\"Forward\", KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON),\n KeyboardShortcutInfo(\"Backward\", KeyEvent.KEYCODE_B, KeyEvent.META_CTRL_ON),\n )\n )\n\n val messageEdit = KeyboardShortcutGroup(\n \"Message editing\",\n listOf(\n KeyboardShortcutInfo(\"Select All\", KeyEvent.KEYCODE_A, KeyEvent.META_CTRL_ON),\n KeyboardShortcutInfo(\"Send a message\", KeyEvent.KEYCODE_ENTER, KeyEvent.META_SHIFT_ON)\n )\n )\n\n data?.add(cursorMovement)\n data?.add(messageEdit)\n }\n\nOpen Keyboard Shortcuts Helper from code\n----------------------------------------\n\nApps display the keyboard shortcuts screen by\ncalling the [`requestShowKeyboardShortcuts()`](/reference/kotlin/android/app/Activity#requestshowkeyboardshortcuts)\nmethod. In the following snippet, Keyboard Shortcuts Helper opens when users tap\nor click the button or press the \u003ckbd\u003eEnter\u003c/kbd\u003e key. \n\n val activity = LocalContext.current as Activity\n\n Button(onClick = { activity.requestShowKeyboardShortcuts() }) {\n Text(text = \"Show keyboard shortcuts\")\n }"]]