Ayuda en las combinaciones de teclas

El asistente de combinaciones de teclas permite que los usuarios descubran combinaciones de teclas para la plataforma y las apps abiertas. Publica las combinaciones de teclas de tu app en el asistente de combinaciones de teclas para mejorar la productividad y la facilidad de uso de los usuarios.

Los usuarios presionan Meta +/ para abrir la pantalla de combinaciones de teclas, que está disponible en Android 7.0 (nivel de API 24) y versiones posteriores.

Aplicación abierta en un dispositivo que muestra las combinaciones de teclas del sistema.
Figura 1: Ayuda en las combinaciones de teclas.

Proporciona combinaciones de teclas al asistente de combinaciones de teclas

Puedes proporcionar listas de combinaciones de teclas disponibles al asistente de combinaciones de teclas anulando la devolución de llamada de la ventana onProvideKeyboardShortcuts(). En el siguiente fragmento, se muestra una implementación de onProvideKeyboardShortcuts() para agregar un grupo de cuatro accesos directos:

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 describe una combinación de teclas. La lista de combinaciones de teclas se une como un objeto KeyboardShortcutGroup. Las apps notifican las combinaciones de teclas disponibles al asistente de combinaciones de teclas agregando los objetos KeyboardShortcutGroup a la lista mutable que se pasa como el primer parámetro del método.

Organiza las combinaciones de teclas con grupos

El asistente de combinaciones de teclas muestra las combinaciones de teclas en grupos separados para que los usuarios puedan encontrarlas por caso de uso o para las pantallas de tu app. En la figura 2, se muestran las combinaciones de teclas categorizadas en dos grupos: movimiento del cursor y edición de mensajes.

Aplicación abierta en un dispositivo que muestra grupos de combinaciones de teclas.
Figura 2: Categorías en el asistente de combinaciones de teclas.

Tu app registra dos o más grupos de combinaciones de teclas creando un objeto KeyboardShortcutGroup para cada grupo. En el siguiente fragmento, se agregan dos objetos KeyboardShortCutGroup a la lista mutable que se pasó al método onProvideKeyboardShortcuts(). Los objetos se muestran como categorías en el asistente de combinaciones de teclas, como se muestra en la figura 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)
}

Cómo abrir la ayuda en las combinaciones de teclas desde el código

Las apps muestran la pantalla de combinaciones de teclas llamando al método requestShowKeyboardShortcuts(). En el siguiente fragmento, el asistente de combinaciones de teclas se abre cuando los usuarios presionan o hacen clic en el botón, o bien presionan la tecla Intro.

val activity = LocalActivity.current

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