Keyboard Shortcuts Helper

Bantuan Pintasan Keyboard memungkinkan pengguna menemukan pintasan keyboard untuk dan membuka aplikasi. Publikasikan pintasan aplikasi Anda di Keyboard Shortcuts Helper untuk meningkatkan produktivitas dan kemudahan penggunaan.

Pengguna menekan Meta+/ untuk membuka layar pintasan keyboard, yaitu tersedia di Android 7.0 (level API 24) dan yang lebih tinggi.

Aplikasi terbuka di perangkat yang menampilkan pintasan sistem.
Gambar 1. Bantuan Pintasan Keyboard.

Menyediakan pintasan ke Bantuan Pintasan Keyboard

Anda dapat memberikan daftar pintasan keyboard yang tersedia untuk Bantuan Pintasan Keyboard dengan mengganti Callback jendela onProvideKeyboardShortcuts(). Cuplikan berikut menunjukkan implementasi onProvideKeyboardShortcuts() untuk menambahkan grup yang berisi empat pintasan:

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 menjelaskan pintasan keyboard. Daftar pintasan {i>keyboard<i} digabungkan sebagai Objek KeyboardShortcutGroup. Aplikasi memberi tahu pintasan keyboard yang tersedia ke Keyboard Shortcuts Helper dengan menambahkan objek KeyboardShortcutGroup ke daftar yang dapat diubah yang diteruskan sebagai parameter pertama metode.

Mengatur pintasan keyboard dengan grup

Bantuan Pintasan Keyboard menampilkan pintasan keyboard dalam grup terpisah sehingga pengguna dapat menemukan pintasan berdasarkan kasus penggunaan atau untuk layar aplikasi Anda. Gambar 2 menunjukkan pintasan keyboard dikategorikan menjadi dua kelompok: gerakan kursor dan pengeditan pesan.

Aplikasi terbuka di perangkat yang menampilkan grup pintasan.
Gambar 2. Kategori di Bantuan Pintasan Keyboard.

Aplikasi Anda mendaftarkan dua grup pintasan keyboard atau lebih dengan membuat Objek KeyboardShortcutGroup untuk setiap grup. Dalam cuplikan berikut, dua objek KeyboardShortCutGroup ditambahkan ke daftar yang dapat diubah yang diteruskan ke metode onProvideKeyboardShortcuts(). Objek ditampilkan sebagai kategori di Keyboard Shortcuts Helper sebagai gambar 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)
}

Buka Bantuan Pintasan Keyboard dari kode

Aplikasi menampilkan layar pintasan keyboard dengan memanggil requestShowKeyboardShortcuts() . Dalam cuplikan berikut, Keyboard Shortcuts Helper terbuka saat pengguna mengetuk atau klik tombol atau tekan tombol Enter.

val activity = LocalContext.current as Activity

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