鍵盤快速鍵小幫手

鍵盤快速鍵輔助程式可讓使用者探索平台和開啟應用程式的鍵盤快速鍵。在鍵盤快速鍵小幫手中發布應用程式的捷徑,提高使用者的工作效率並增加使用便利性。

使用者請按下 Meta+/ 鍵開啟鍵盤快速鍵畫面,適用於 Android 7.0 (API 級別 24) 以上版本。

圖 1:鍵盤快速鍵小幫手。

提供鍵盤快速鍵小幫手的快速鍵

您可以覆寫 onProvideKeyboardShortcuts() 視窗回呼,為鍵盤快速鍵小幫手提供可用的鍵盤快速鍵清單。下列程式碼片段示範如何實作 onProvideKeyboardShortcuts(),以便新增一組四個捷徑:

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 說明鍵盤快速鍵。鍵盤快速鍵清單會包裝為 KeyboardShortcutGroup 物件。應用程式會將 KeyboardShortcutGroup 物件新增至做為該方法的第一個參數傳遞的可變動清單,藉此向鍵盤快速鍵小幫手通知可用的鍵盤快速鍵。

透過群組整理鍵盤快速鍵

鍵盤快速鍵輔助程式會分別顯示不同群組的鍵盤快速鍵,讓使用者能依用途或應用程式螢幕找到快速鍵。圖 2 顯示歸類為以下兩種群組的鍵盤快速鍵:遊標移動和訊息編輯。

圖 2 鍵盤快速鍵小幫手中的類別。

應用程式會為每個群組建立 KeyboardShortcutGroup 物件,藉此註冊兩個以上的鍵盤快速鍵群組。在以下程式碼片段中,系統會將兩個 KeyboardShortCutGroup 物件新增至傳遞至 onProvideKeyboardShortcuts() 方法的可變動清單。在鍵盤快速鍵輔助程式中,物件會以類別的形式顯示為圖 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)
}

透過程式碼開啟鍵盤快速鍵輔助程式

應用程式會呼叫 requestShowKeyboardShortcuts() 方法,顯示鍵盤快速鍵畫面。在下列程式碼片段中,使用者輕觸/點選按鈕或按下 Enter 鍵時,鍵盤快速鍵會開啟。

val activity = LocalContext.current as Activity

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