مساعد اختصارات لوحة المفاتيح

يتيح مساعد اختصارات لوحة المفاتيح للمستخدمين اكتشاف اختصارات لوحة المفاتيح للنظام الأساسي والتطبيقات المفتوحة. يمكنك نشر اختصارات تطبيقك في "مساعد اختصارات لوحة المفاتيح" لتحسين إنتاجية المستخدمين وسهولة الاستخدام.

يضغط المستخدمون على Meta+/ لفتح شاشة اختصارات لوحة المفاتيح، المتوفّرة على Android 7.0 (المستوى 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")
}