鍵盤快速鍵協助工具

使用者可以透過鍵盤快速鍵輔助程式,探索平台和開啟應用程式的鍵盤快速鍵。在鍵盤快速鍵輔助工具中發布應用程式的快速鍵,提升使用者工作效率並簡化操作。

使用者按下 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 = LocalActivity.current

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