Assistente scorciatoie da tastiera

L'helper delle scorciatoie da tastiera consente agli utenti di scoprire le scorciatoie da tastiera per la piattaforma e di aprire le app. Pubblica le scorciatoie della tua app nell'helper delle scorciatoie da tastiera per migliorare la produttività e la facilità d'uso per gli utenti.

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

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

Fornire scorciatoie all'helper delle scorciatoie da tastiera

Puoi fornire elenchi di scorciatoie da tastiera disponibili a Keyboard Shortcuts Helper eseguendo l'override del onProvideKeyboardShortcuts() callback della finestra. 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 è racchiuso in un KeyboardShortcutGroup oggetto. Le app notificano le scorciatoie da tastiera disponibili all'helper delle scorciatoie da tastiera aggiungendo gli oggetti KeyboardShortcutGroup all'elenco modificabile passato come primo parametro del metodo.

Organizzare le scorciatoie da tastiera con i gruppi

L'helper delle scorciatoie da tastiera mostra le scorciatoie da tastiera in gruppi separati in modo che gli utenti possano trovare le scorciatoie per caso d'uso o per le 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 nell'helper delle scorciatoie da tastiera.

La tua app registra due o più gruppi di scorciatoie da tastiera creando un oggetto KeyboardShortcutGroup per ogni gruppo. Nello snippet seguente, 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)
}

Aprire l'helper delle scorciatoie da tastiera dal codice

Le app visualizzano la schermata delle scorciatoie da tastiera by calling the requestShowKeyboardShortcuts() method. Nello snippet seguente, l'helper delle 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")
}