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

توفّر اختصارات Android للمستخدمين methods سريعة للقيام بإجراء أو الوصول إلى محتوى في أحد التطبيقات. ويمكن أن يقترح "مساعد 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 اختصارات. لا تحتوي هذه المكتبة على تطبيقات موجّهة للمطوّرين واجهة برمجة التطبيقات. تؤدي إضافة هذه التبعية إلى السماح لـ "مساعد 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. يمكنك إنشاء معاينة لمهام التطبيقات وإعداد جهاز الاختبار أو لاختبار الإجراءات باتباع متطلبات الإعداد المتعلقة بمكوّن "مساعد Google" الإضافي.
  2. افتح التطبيق وحدِّد اختصارًا ديناميكيًا لإرساله. ثم أكمل إجراءً ما. على سبيل المثال، إذا ضغطت على اختصار عند إنشاء ملاحظة في تطبيق تدوين الملاحظات، يمكنك إنشاء ملاحظة جديدة.
  3. افتح الاختصارات في تطبيق إعدادات "مساعد Google" على جهازك. إنّ الاختصار الديناميكي في القائمة الخاصة بتطبيقك.