アシスタントに動的ショートカットをプッシュする
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Android のショートカットを使用すると、
操作を実行したり、アプリ内のコンテンツにアクセスしたりするためのメソッドです。
アシスタントは、Android の動的ショートカットを
ユーザーが簡単に検索して再生できるように
音声対応機能を利用できます。
たとえば、ユーザーが作成したメモごとにショートカットをプッシュ
メモ作成アプリ収益額
アシスタントなどの Google サーフェスに表示されるダイナミック リンク
Google Shortcuts Integration Jetpack ライブラリをプロジェクトに追加します。
このライブラリを使用すると、
ShortcutManagerCompat
クラス:
ShortcutManager
API。
アプリで Google Shortcuts Integration ライブラリを使用する場合、
Google にプッシュしたショートカットは、音声ショートカットの候補としてユーザーに表示されます
。動的ショートカットをいくつでもプッシュできる
Google Cloud の pushDynamicShortcut()
メソッドを使用するアシスタント
ShortcutManagerCompat
ライブラリ。
動的ショートカット機能をアプリに追加するには、Android Jetpack ライブラリである Google Shortcuts Integration Library が必要です。このセクションでは、アプリ開発プロジェクトを次のように構成する方法について説明します。
使用できます。
この Jetpack ライブラリを追加してプロジェクトを構成する手順は次のとおりです。
Jetpack ライブラリを処理するように、gradle.properties
ファイルを更新します。
gradle.properties
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
Jetpack ライブラリの依存関係を build.gradle
に追加します。
app/build.gradle
dependencies {
implementation "androidx.core:core:1.6.0"
implementation "androidx.core:core-google-shortcuts:1.0.1"
...
}
上記のサンプルコードでは、依存関係として 2 つの Jetpack ライブラリをリストしています。androidx.core:core:1.6.0
ライブラリには、
ShortcutManagerCompat
クラス: 動的ショートカットを
Google
androidx.core:core-google-shortcuts:1.0.1
は、Google Shortcuts Integration Library です。このライブラリには、デベロッパー向けの API は含まれていません。依存関係として追加することで、アシスタントは
ShortcutManagerCompat
クラスを使用してプッシュする動的ショートカット。
動的ショートカットをプッシュする
アシスタントに表示できる動的ショートカットをプッシュするには、最初に、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);
上記のサンプルコードの ShortcutInfoCompat.Builder
メソッドで参照される id
は、生成されるショートカット オブジェクトの shortcutId
を定義しています。この id
は、一意の文字列リテラルを指す必要があります。詳しくは、Android ショートカットのドキュメントをご覧ください。
上記の例では、addCapabilityBinding
メソッドにより、shortcuts.xml
で定義された同じ android:name
の capability
に動的ショートカットがバインドされています。この方法では、ショートカットを
セマンティック 組み込みインテント(BII)パラメータ。
動的ショートカットは、特定の BII パラメータへの関連付けなしでプッシュされることがあります。ユーザーがアシスタントを呼び出すと、アシスタントはショートカットに定義された 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 アシスタントがアプリから動的ショートカットを正常に取り込むと、そのショートカットは、アシスタント Android アプリに音声ショートカット候補として表示できるようになります。アシスタント アプリは、アプリによってプッシュされた最新のショートカットを提示します。
アシスタントで動的ショートカットをテストする手順は次のとおりです。
- App Actions のプレビューを作成し、テストデバイスを準備するか、
エミュレータを使用して、同じ手順に沿ってアクションをテストします。
Google アシスタント プラグインと同じセットアップ要件があります。
- アプリを開き、プッシュする動的ショートカットを定義します。その後、アクションを完了します。たとえば、メモ作成アプリでメモを作成するたびにショートカットをプッシュする場合は、新しいメモを作成します。
- デバイスのアシスタント設定アプリで、ショートカットを開きます。お客様の
アプリのリストに動的ショートカットが表示されます。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","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 UTC。"],[],[],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."]]