تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتيح اختصارات Android للمستخدمين
طرق لتنفيذ إجراء أو الوصول إلى المحتوى في أحد التطبيقات.
يمكن لخدمة "مساعد Google" أن تقترح بشكل استباقي اختصارات Android الديناميكية على المستخدمين في
ذات صلة، مما يتيح للمستخدمين اكتشاف وإعادة تشغيل
الوظائف الصوتية.
على سبيل المثال، يمكنك فرض اختصار لكل ملاحظة ينشئها المستخدم فيها
تطبيق تدوين الملاحظات. أنت تصنع
الروابط الديناميكية المؤهَّلة للعرض على مساحات عرض Google، مثل "مساعد Google"
من خلال إضافة مكتبة Jetpack الخاصة بدمج اختصارات Google إلى مشروعك.
تتيح هذه المكتبة لتطبيق "مساعد Google" استخدام اختصارات ديناميكية ترسلها باستخدام فئة
ShortcutManagerCompat، وهي حزمة Jetpack لواجهة برمجة التطبيقات
ShortcutManager.
عند استخدام مكتبة دمج اختصارات Google في تطبيقك، تظهر للمستخدمين اختصارات
الديناميكية التي ترسلها إلى Google كاقتراحات اختصارات صوتية
في تطبيق "مساعد Google". يمكنك إرسال عدد غير محدود من الاختصارات الديناميكية إلى
"مساعد Google" باستخدام طريقة pushDynamicShortcut() من مكتبة
ShortcutManagerCompat.
ضبط مشروع التطوير
لإضافة وظيفة الاختصارات الديناميكية إلى تطبيقك، يجب أن يكون لديك
مكتبة دمج اختصارات Google، وهي مكتبة Jetpack من Android.
يوضِّح هذا القسم كيفية ضبط مشروع تطوير التطبيقات لتضمينه.
هذه المكتبة.
لإضافة مكتبة Jetpack هذه وضبط مشروعك، اتّبِع الخطوات التالية:
في الرمز النموذجي السابق، يمكنك إدراج مكتبتَين 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 itemvarintent=Intent(context,DisplayOrderActivity::class.java)intent.action=Intent.ACTION_VIEWvarshortcutInfo=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 shortcutShortcutManagerCompat.pushDynamicShortcut(context,shortcutInfo)
Java
// Define the dynamic shortcut for an itemIntentintent=newIntent(context,DisplayOrderActivity.class);intent.setAction(Intent.ACTION_VIEW);ShortcutInfoCompat.BuildershortcutInfo=newShortcutInfoCompat.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 shortcutShortcutManagerCompat.pushDynamicShortcut(context,shortcutInfo);
يحدِّد العنصر id المُشار إليه في طريقة ShortcutInfoCompat.Builder في المثال السابق
للرمز البرمجي shortcutId لكائن الاختصار الناتج. هذا id
أن تكون سلسلة حرفية فريدة. للحصول على التفاصيل، يمكنك مراجعة
مستندات "اختصارات Android"
في المثال السابق، تربط الطريقة addCapabilityBinding العنصر الديناميكي
اختصار إلى capability من android:name نفسه المحدد في
shortcuts.xml تتيح لك هذه الطريقة ربط الاختصار
مَعلمة النية المضمّنة (BII) الدلالية.
يتم أحيانًا إرسال الاختصارات الديناميكية بدون أي معلمة BII محددة
المرتبطة بها. عندما يطلب المستخدم إجراءً، يشغِّل "مساعد Google" intent الذي تم تحديده
في الاختصار لتنفيذ الإجراء. يوضح المثال التالي دالة ديناميكية
اختصار بدون ارتباط معلَمة:
Kotlin
varintent:Intent=Intent(context,DisplayOrderActivity::class.java)intent.setPackage(this,"com.sample.app")intent.setAction(Intent.ACTION_VIEW)varshortcutInfo: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
Intentintent=newIntent(context,DisplayOrderActivity.class);intent.setPackage(this,"com.sample.app");intent.setAction(Intent.ACTION_VIEW);ShortcutInfoCompatshortcutInfo=newShortcutInfoCompat.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"، اتّبِع الخطوات التالية:
أنشئ معاينة لإجراءات التطبيق وأعِد الجهاز الاختباري أو الemualtor لاختبار الإجراءات باتّباع متطلبات الإعداد نفسها التي تخصّ مكوّن "مساعد Google" الإضافي.
افتح التطبيق وحدِّد اختصارًا ديناميكيًا لإرساله. ثم أكمل إجراءً ما.
على سبيل المثال، إذا ضغطت اختصارًا عند
يتم إنشاء ملاحظة في تطبيق تدوين الملاحظات، ثم يتم إنشاء ملاحظة جديدة.
افتح الاختصارات في تطبيق إعدادات "مساعد Google" على جهازك.
الاختصار الديناميكي في القائمة الخاصة بتطبيقك.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Push dynamic shortcuts to Assistant\n\n[Android shortcuts](/guide/topics/ui/shortcuts) provide users with quick\nmethods to perform an action or access content in an app.\nAssistant can proactively suggest your Android dynamic shortcuts to users at\nrelevant times, enabling users to easily discover and replay your\nvoice-enabled functionality.\n\nFor example, you can push a shortcut for each note a user creates in\nyour note taking app. You make\ndynamic links eligible to display on Google surfaces, like Assistant,\nby adding the [Google Shortcuts Integration Jetpack library](/jetpack/androidx/releases/core#core-google-shortcuts-1.0.1) to your project.\nThis library lets Assistant take in dynamic shortcuts you push using the\n[`ShortcutManagerCompat`](/reference/androidx/core/content/pm/ShortcutManagerCompat) class, which is a Jetpack wrapper for the\n[`ShortcutManager`](/reference/android/content/pm/ShortcutManager) API.\n\nWhen you use the Google Shortcuts Integration library in your app, dynamic\nshortcuts you push to Google are visible to users as voice shortcut suggestions\nin the Assistant app. You can push an unlimited number of dynamic shortcuts to\nAssistant using the [`pushDynamicShortcut()`](/reference/androidx/core/content/pm/ShortcutManagerCompat#pushDynamicShortcut(android.content.Context,%20androidx.core.content.pm.ShortcutInfoCompat)) method of the\n`ShortcutManagerCompat` library.\n\nConfigure your development project\n----------------------------------\n\nAdding dynamic shortcuts functionality to your app requires the\nGoogle Shortcuts Integration library, which is an Android Jetpack library.\nThis section describes how to configure your app development project to include\nthis library.\n\nTo add this Jetpack library and configure your project, follow these steps:\n\n1. Update your `gradle.properties` file to handle Jetpack libraries:\n\n **gradle.properties** \n\n android.useAndroidX=true\n # Automatically convert third-party libraries to use AndroidX\n android.enableJetifier=true\n\n2. Add the Jetpack library dependencies to your `build.gradle`:\n\n **app/build.gradle** \n\n dependencies {\n implementation \"androidx.core:core:1.6.0\"\n implementation \"androidx.core:core-google-shortcuts:1.0.1\"\n ...\n }\n\n In the preceding sample code, you list two Jetpack libraries as\n dependencies. The `androidx.core:core:1.6.0` library contains the\n `ShortcutManagerCompat` class, which you use to push dynamic shortcuts to\n Google.\n\n The `androidx.core:core-google-shortcuts:1.0.1` is the Google\n Shortcuts Integration library. This library contains no developer-facing\n API. By adding it as a dependency, you enable Assistant to take in the\n dynamic shortcuts you push using the `ShortcutManagerCompat` class.\n | **Note:** Visit the [Jetpack library explorer](/jetpack/androidx/explorer) to find the latest versions of the Core and Google Shortcuts Integration libraries.\n\nPush dynamic shortcuts\n----------------------\n\nTo push dynamic shortcuts that are eligible for display on Assistant,\nyou first create the shortcut using the `ShortcutInfoCompat.Builder()`\nclass.\n\nYou then push the shortcut using the\n`ShortcutManagerCompat.pushDynamicShortcut()` method. Shortcuts are pushed\nwhenever a user completes a relevant action in your app. The following sample\ncode pushes a shortcut every time a user creates a list in a notes and lists app.\n\n**ExampleOrderActivity** \n\n### Kotlin\n\n```kotlin\n// Define the dynamic shortcut for an item\nvar intent = Intent(context, DisplayOrderActivity::class.java)\nintent.action = Intent.ACTION_VIEW\nvar shortcutInfo = ShortcutInfoCompat.Builder(context, id)\n .setShortLabel(\"Running\")\n .setLongLabel(\"Start running\")\n .addCapabilityBinding(\n \"actions.intent.CREATE_ITEM_LIST\", \"itemList.name\", Arrays.asList(\"My First List\")\n )\n .setIntent(intent) // Push the shortcut\n .build()\n\n// Push the shortcut\nShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)\n```\n\n### Java\n\n```java\n// Define the dynamic shortcut for an item\nIntent intent = new Intent(context, DisplayOrderActivity.class);\nintent.setAction(Intent.ACTION_VIEW);\n\nShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id)\n .setShortLabel(\"Running\")\n .setLongLabel(\"Start running\")\n .addCapabilityBinding(\n \"actions.intent.CREATE_ITEM_LIST\", \"itemList.name\", Arrays.asList(\"My First List\"))\n .setIntent(intent)\n .build();\n\n// Push the shortcut\nShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);\n```\n\nThe `id` referenced in the `ShortcutInfoCompat.Builder` method in the preceding\nsample code defines the `shortcutId` of the resulting shortcut object. This `id`\nmust be a unique string literal. For details, see the\n[Android Shortcuts documentation](/reference/android/content/pm/ShortcutInfo#getId()).\n\nIn the preceding example, the `addCapabilityBinding` method binds the dynamic\nshortcut to a `capability` of the same `android:name` defined in\n`shortcuts.xml`. This method lets you associate the shortcut to a\nsemantic [built-in intent](/guide/app-actions/intents) (BII) parameter.\n\nDynamic shortcuts sometimes are pushed without any particular BII parameter\nassociation. When invoked by the user, Assistant triggers the `intent` defined\nin the shortcut to fulfill the action. The following example shows a dynamic\nshortcut with no parameter association: \n\n### Kotlin\n\n```kotlin\nvar intent: Intent = Intent(context, DisplayOrderActivity::class.java)\nintent.setPackage(this, \"com.sample.app\")\nintent.setAction(Intent.ACTION_VIEW)\n\nvar shortcutInfo: ShortcutInfoCompat = ShortcutInfoCompat.Builder(context, id)\n .setShortLabel(\"Create a list\")\n .setLongLabel(\"Create a list\")\n .addCapabilityBinding(\"actions.intent.CREATE_ITEM_LIST\")\n .setIntent(intent)\n .build()\n\nShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);\n```\n\n### Java\n\n```java\nIntent intent = new Intent(context, DisplayOrderActivity.class);\nintent.setPackage(this, \"com.sample.app\");\nintent.setAction(Intent.ACTION_VIEW);\n\nShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, id)\n .setShortLabel(\"Create a list\")\n .setLongLabel(\"Create a list\")\n .addCapabilityBinding(\"actions.intent.CREATE_ITEM_LIST\")\n .setIntent(intent)\n .build();\n\nShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);\n```\n\nTest dynamic shortcuts with Assistant\n-------------------------------------\n\nWhen Google Assistant successfully takes in a dynamic shortcut from your\napplication, the shortcut is eligible to appear as a Voice Shortcut suggestion in the\nAssistant Android app. The Assistant app suggests the most recent shortcuts\npushed by your app.\n\nTo test your dynamic shortcuts with Assistant, follow these steps:\n\n1. Create a preview of your App Actions and prepare your test device or emulator for testing actions by following the same setup requirements as for the [Google Assistant Plugin](/guide/app-actions/test-tool).\n2. Open your app and define a dynamic shortcut to push. Then complete an action. For example, if you push a shortcut whenever a note is created in your note taking app, then create a new note.\n3. Open **Shortcuts** in the **Assistant Settings** app on your device. Your dynamic shortcut appears in the list for your app."]]