إرسال الاختصارات الديناميكية إلى "مساعد Google"

تتيح اختصارات Android للمستخدمين طرق لتنفيذ إجراء أو الوصول إلى المحتوى في أحد التطبيقات. يمكن لخدمة "مساعد Google" أن تقترح بشكل استباقي اختصارات Android الديناميكية على المستخدمين في ذات صلة، مما يتيح للمستخدمين اكتشاف وإعادة تشغيل الوظائف الصوتية.

على سبيل المثال، يمكنك فرض اختصار لكل ملاحظة ينشئها المستخدم فيها تطبيق تدوين الملاحظات. أنت تصنع الروابط الديناميكية المؤهَّلة للعرض على مساحات عرض Google، مثل "مساعد Google" من خلال إضافة مكتبة Jetpack الخاصة بدمج اختصارات Google إلى مشروعك. تتيح هذه المكتبة لخدمة "مساعد Google" استخدام الاختصارات الديناميكية التي تدفعها باستخدام ShortcutManagerCompat، وهي برنامج تضمين في Jetpack ShortcutManager واجهة برمجة التطبيقات.

عند استخدام مكتبة دمج "اختصارات Google" في تطبيقك، إنّ الاختصارات التي تدفعها إلى Google تكون مرئية للمستخدمين كاقتراحات للاختصارات الصوتية. في تطبيق المساعد. يمكنك دفع عدد غير محدود من الاختصارات الديناميكية "مساعد Google" باستخدام طريقة pushDynamicShortcut() ShortcutManagerCompat.

ضبط إعدادات مشروع التطوير

لإضافة وظيفة الاختصارات الديناميكية إلى تطبيقك، يجب أن يكون لديك مكتبة دمج اختصارات Google، وهي مكتبة Jetpack من Android. يوضِّح هذا القسم كيفية ضبط مشروع تطوير التطبيقات لتضمينه. هذه المكتبة.

لإضافة مكتبة Jetpack هذه وإعداد مشروعك، اتّبِع الخطوات التالية:

  1. يمكنك تعديل ملف gradle.properties للتعامل مع مكتبات Jetpack:

    gradle.properties

    android.useAndroidX=true
    # Automatically convert third-party libraries to use AndroidX
    android.enableJetifier=true
    
  2. إضافة ملحقات مكتبة Jetpack إلى build.gradle:

    app/build.gradle

    dependencies {
     implementation "androidx.core:core:1.6.0"
     implementation "androidx.core:core-google-shortcuts:1.0.1"
     ...
    }
    

    في الرمز النموذجي السابق، يمكنك إدراج مكتبتَين Jetpack والتبعيات لديك. تحتوي مكتبة "androidx.core:core:1.6.0" على صف واحد (ShortcutManagerCompat) تستخدمه للدفع بالاختصارات الديناميكية إليه Google.

    تقدّم androidx.core:core-google-shortcuts:1.0.1 منصة مكتبة تكامل الاختصارات. لا تحتوي هذه المكتبة على تطبيقات موجّهة للمطوّرين واجهة برمجة التطبيقات. تؤدي إضافة هذه التبعية إلى السماح لـ "مساعد Google" بتولي الاختصارات الديناميكية التي تدفعها باستخدام الفئة ShortcutManagerCompat.

دفع الاختصارات الديناميكية

لإرسال الاختصارات الديناميكية المؤهَّلة للعرض على "مساعد Google"، يجب أولاً إنشاء الاختصار باستخدام ShortcutInfoCompat.Builder() الصف.

يمكنك بعد ذلك الضغط على الاختصار باستخدام زر طريقة ShortcutManagerCompat.pushDynamicShortcut(). تم إرسال الاختصارات كلما أكمل المستخدم إجراءً ذا صلة في تطبيقك. النموذج التالي يؤدي الرمز إلى اختصار اختصار في كل مرة يقدم فيها المستخدم طلبًا في تطبيق توصيل الطعام:

ExampleOrderActivity

Kotlin

// Define the dynamic shortcut for a menu item
var intent = Intent(context, DisplayOrderActivity::class.java)
intent.action = Intent.ACTION_VIEW
var shortcutInfo = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Cappuccino")
    .setLongLabel("Order another cappuccino")
    .addCapabilityBinding(
        "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino")
    )
    .setIntent(intent) // Push the shortcut
    .build()

// Push the shortcut
ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)

Java

// Define the dynamic shortcut for a menu item
Intent intent = new Intent(context, DisplayOrderActivity.class);
intent.setAction(Intent.ACTION_VIEW);

ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Cappuccino")
    .setLongLabel("Order another cappuccino")
    .addCapabilityBinding(
      "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino"))
    .setIntent(intent)
    .build();

// Push the shortcut
ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

تمثّل هذه السمة id المُشار إليها في طريقة ShortcutInfoCompat.Builder في المقالة السابقة يحدد الرمز النموذجي shortcutId لكائن الاختصار الناتج. هذا id أن تكون سلسلة حرفية فريدة. للحصول على التفاصيل، يمكنك مراجعة مستندات "اختصارات Android"

في المثال السابق، تربط الطريقة addCapabilityBinding العنصر الديناميكي اختصار إلى capability من android:name نفسه المحدد في shortcuts.xml تتيح لك هذه الطريقة ربط الاختصار مَعلمة النية المضمّنة (BII) الدلالية.

يتم أحيانًا إرسال الاختصارات الديناميكية بدون أي معلمة BII محددة المرتبطة بها. عندما يطلب المستخدم "مساعد Google"، يشغِّل intent المحددة. في الاختصار لتنفيذ الإجراء. يوضح المثال التالي دالة ديناميكية اختصار بدون ارتباط معلَمة:

Kotlin

var intent: Intent = Intent(context, DisplayOrderActivity::class.java)
intent.setPackage(this, "com.sample.app")
intent.setAction(Intent.ACTION_VIEW)

var shortcutInfo: ShortcutInfoCompat = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Order coffee")
    .setLongLabel("Order a cup of coffee")
    .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM")
    .setIntent(intent)
    .build()

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

Java

Intent intent = new Intent(context, DisplayOrderActivity.class);
intent.setPackage(this, "com.sample.app");
intent.setAction(Intent.ACTION_VIEW);

ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
  .setShortLabel("Order coffee")
  .setLongLabel("Order a cup of coffee")
  .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM")
  .setIntent(intent)
  .build();

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

اختبار الاختصارات الديناميكية باستخدام "مساعد Google"

عندما ينجح "مساعد Google" في الوصول إلى اختصار ديناميكي من ، يكون الاختصار مؤهلاً للظهور كاقتراح لاختصار صوتي في تطبيق "مساعد Google" المتوافق مع Android يقترح تطبيق "مساعد Google" أحدث الاختصارات بواسطة تطبيقك.

لاختبار الاختصارات الديناميكية باستخدام "مساعد Google"، اتّبِع الخطوات التالية:

  1. يمكنك إنشاء معاينة لمهام التطبيقات وإعداد جهاز الاختبار أو لاختبار الإجراءات باتباع متطلبات الإعداد المتعلقة بمكوّن "مساعد Google" الإضافي.
  2. افتح التطبيق وحدِّد اختصارًا ديناميكيًا لإرساله. ثم أكمل إجراءً ما. على سبيل المثال، إذا ضغطت اختصارًا عند يتم إنشاء ملاحظة في تطبيق تدوين الملاحظات، ثم يتم إنشاء ملاحظة جديدة.
  3. افتح الاختصارات في تطبيق إعدادات "مساعد Google" على جهازك. الاختصار الديناميكي في القائمة الخاصة بتطبيقك.