Assistente scorciatoie da tastiera

La guida alle scorciatoie da tastiera consente agli utenti di scoprire le scorciatoie da tastiera per la piattaforma e le app aperte. Pubblica le scorciatoie della tua app nell'Assistente per le scorciatoie da tastiera per migliorare la produttività e la facilità d'uso degli utenti.

Gli utenti premono Meta+/ per aprire la schermata delle scorciatoie da tastiera, disponibile su Android 7.0 (livello API 24) e versioni successive.

Applicazione aperta su un dispositivo che mostra le scorciatoie di sistema.
Figura 1. Guida alle scorciatoie da tastiera.

Fornire scorciatoie per l'assistente per le scorciatoie da tastiera

Puoi fornire elenchi di scorciatoie da tastiera disponibili all'Assistente per le scorciatoie da tastiera eseguendo l'override del callback della finestra onProvideKeyboardShortcuts(). Il seguente snippet mostra un'implementazione di onProvideKeyboardShortcuts() per aggiungere un gruppo di quattro scorciatoie:

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 descrive una scorciatoia da tastiera. L'elenco delle scorciatoie da tastiera è inserito in un oggetto KeyboardShortcutGroup. Le app notificano le scorciatoie da tastiera disponibili all'assistente per le scorciatoie da tastiera aggiungendo gli oggetti KeyboardShortcutGroup all'elenco modificabile passato come primo parametro del metodo.

Organizza le scorciatoie da tastiera con i gruppi

L'assistente per le scorciatoie da tastiera visualizza le scorciatoie da tastiera in gruppi separati, in modo che gli utenti possano trovare le scorciatoie in base al caso d'uso o alle schermate della tua app. La Figura 2 mostra le scorciatoie da tastiera suddivise in due gruppi: movimento del cursore e modifica dei messaggi.

Applicazione aperta su un dispositivo che mostra i gruppi di scorciatoie.
Figura 2. Categorie nello strumento di assistenza per le scorciatoie da tastiera.

La tua app registra due o più gruppi di scorciatoie da tastiera creando un oggetto KeyboardShortcutGroup per ogni gruppo. Nel seguente snippet, due oggetti KeyboardShortCutGroup vengono aggiunti all'elenco modificabile passato al metodo onProvideKeyboardShortcuts(). Gli oggetti vengono visualizzati come categorie nell'helper delle scorciatoie da tastiera, come mostrato nella 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)
}

Apri la guida alle scorciatoie da tastiera dal codice

Le app mostrano la schermata delle scorciatoie da tastiera chiamando il metodo requestShowKeyboardShortcuts(). Nel seguente snippet, l'Assistente per le scorciatoie da tastiera si apre quando gli utenti toccano o fanno clic sul pulsante o premono il tasto Invio.

val activity = LocalActivity.current

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