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

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

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

عند استخدام مكتبة دمج اختصارات Google في تطبيقك، تظهر للمستخدمين اختصارات الديناميكية التي ترسلها إلى 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 an item
var intent = Intent(context, DisplayOrderActivity::class.java)
intent.action = Intent.ACTION_VIEW
var shortcutInfo = ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Running")
    .setLongLabel("Start running")
    .addCapabilityBinding(
        "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List")
    )
    .setIntent(intent) // Push the shortcut
    .build()

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

Java

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

ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id)
    .setShortLabel("Running")
    .setLongLabel("Start running")
    .addCapabilityBinding(
      "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List"))
    .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("Create a list")
    .setLongLabel("Create a list")
    .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST")
    .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("Create a list")
  .setLongLabel("Create a list")
  .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST")
  .setIntent(intent)
  .build();

ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);

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

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

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

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