Add capabilities to shortcuts
Stay organized with collections
Save and categorize content based on your preferences.
Capabilities in shortcuts.xml
let you declare the types of actions users can
take to launch your app and directly perform a specific task.
For example, Google Assistant App Actions use capabilities to let developers
extend in-app features to built-in intents (BIIs), letting users activate
and control those features using spoken commands. A capability consists of the
name of the action and an intent
targeting the destination in your app that
resolves the user intent.
Define capabilities in shortcuts.xml
You define capability
elements in a shortcuts.xml
resource file in your
Android app development project. To define a capability
element, do the
following:
- Create a
shortcuts.xml
resource by following the instructions in Create
static shortcuts.
Include the following required information in your capability:
Capability name: the action you want your app to support. Refer to
the component documentation for the feature that requires capability
definitions. App Actions voice-enabled commands use the BII Action ID
for capability names, which you can find in BII reference. For example,
the GET_THING
BII lists its Action ID
as actions.intent.GET_THING
.
App destination: the destination in your app the action launches to
fulfill the user request. Define app destinations using intent
elements
nested within the capability
.
Parameter mappings: each intent
might contain parameters to be
passed as extra
data of the intent. For example, each App Actions BII
includes fields representing information users often provide in queries that
trigger the BII.
The following example demonstrates a capability definition in shortcuts.xml
for actions.intent.START_EXERCISE
, a BII that lets users use spoken
commands with Assistant to begin a workout in a fitness app:
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.START_EXERCISE">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.sampleApp"
android:targetClass="com.example.sampleApp.ExerciseActivity">
<parameter
android:name="exercise.name"
android:key="exerciseType"/>
</intent>
</capability>
</shortcuts>
In the preceding example, the <capability>
android:name
attribute refers to
the START_EXERCISE
BII. If a user invokes this BII by asking Assistant, "Hey
Google, start a run in ExampleApp," Assistant fulfills the user request using
information provided in the nested intent
element. The intent
in this sample
defines the following details:
- The
android:targetPackage
sets the target application package for this
intent.
- The
android:targetClass
field specifies the destination activity:
com.example.sampleApp.ExerciseActivity
.
- The intent
parameter
declares support for a BII parameter
exercise.name
and how to pass the parameter value—collected
from the user—as extra data in the intent
.
Associate shortcuts with a capability
Once you define a capability, you can extend its functionality by associating
static or dynamic shortcuts with it. How shortcuts are linked to a capability
depends on the feature being implemented and the actual words included in a
user's request. For example, when a user begins a run in your fitness tracking
app by asking Assistant, "Hey Google, start a run in ExampleApp." Assistant
can use a shortcut to launch an instance of a capability
that defines a valid
exercise entity of "run" for the exercise.name
parameter.
For more information about associating shortcuts to App Actions, see App
Actions overview.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[],[],null,["Capabilities in `shortcuts.xml` let you declare the types of actions users can\ntake to launch your app and directly perform a specific task.\n\nFor example, Google Assistant App Actions use capabilities to let developers\nextend in-app features to [built-in intents](//developers.google.com/assistant/app/intents) (BIIs), letting users activate\nand control those features using spoken commands. A capability consists of the\nname of the action and an `intent` targeting the destination in your app that\nresolves the user intent.\n\nDefine capabilities in shortcuts.xml\n\nYou define `capability` elements in a `shortcuts.xml` resource file in your\nAndroid app development project. To define a `capability` element, do the\nfollowing:\n\n1. Create a `shortcuts.xml` resource by following the instructions in [Create\n static shortcuts](//develop/ui/views/launch/shortcuts/creating-shortcuts#static).\n2. Include the following required information in your capability:\n\n - **Capability name:** the action you want your app to support. Refer to\n the component documentation for the feature that requires capability\n definitions. App Actions voice-enabled commands use the BII `Action ID`\n for capability names, which you can find in [BII reference](//developers.google.com/assistant/app/reference/built-in-intents). For example,\n the [`GET_THING`](//developers.google.com/assistant/app/reference/built-in-intents/common/get-thing) BII lists its `Action ID` as `actions.intent.GET_THING`.\n\n - **App destination:** the destination in your app the action launches to\n fulfill the user request. Define app destinations using `intent` elements\n nested within the `capability`.\n\n - **Parameter mappings:** each `intent` might contain parameters to be\n passed as `extra` data of the intent. For example, each App Actions BII\n includes fields representing information users often provide in queries that\n trigger the BII.\n\nThe following example demonstrates a capability definition in `shortcuts.xml`\nfor [`actions.intent.START_EXERCISE`](//developers.google.com/assistant/app/reference/built-in-intents/health-and-fitness/start-exercise), a BII that lets users use spoken\ncommands with Assistant to begin a workout in a fitness app: \n\n \u003cshortcuts xmlns:android=\"http://schemas.android.com/apk/res/android\"\u003e\n \u003ccapability android:name=\"actions.intent.START_EXERCISE\"\u003e\n \u003cintent\n android:action=\"android.intent.action.VIEW\"\n android:targetPackage=\"com.example.sampleApp\"\n android:targetClass=\"com.example.sampleApp.ExerciseActivity\"\u003e\n \u003cparameter\n android:name=\"exercise.name\"\n android:key=\"exerciseType\"/\u003e\n \u003c/intent\u003e\n \u003c/capability\u003e\n \u003c/shortcuts\u003e\n\nIn the preceding example, the `\u003ccapability\u003e` `android:name` attribute refers to\nthe `START_EXERCISE` BII. If a user invokes this BII by asking Assistant, *\"Hey\nGoogle, start a run in ExampleApp,\"* Assistant fulfills the user request using\ninformation provided in the nested `intent` element. The `intent` in this sample\ndefines the following details:\n\n- The `android:targetPackage` sets the target application package for this intent.\n- The `android:targetClass` field specifies the destination activity: `com.example.sampleApp.ExerciseActivity`.\n- The intent `parameter` declares support for a BII parameter [`exercise.name`](//developers.google.com/assistant/app/reference/built-in-intents/health-and-fitness/start-exercise#recommended-fields) and how to pass the parameter value---collected from the user---as extra data in the `intent`.\n\nAssociate shortcuts with a capability\n\nOnce you define a capability, you can extend its functionality by associating\nstatic or dynamic shortcuts with it. How shortcuts are linked to a `capability`\ndepends on the feature being implemented and the actual words included in a\nuser's request. For example, when a user begins a run in your fitness tracking\napp by asking Assistant, *\"Hey Google, start a run in ExampleApp.\"* Assistant\ncan use a shortcut to launch an instance of a `capability` that defines a valid\nexercise entity of \"run\" for the `exercise.name` parameter.\n\nFor more information about associating shortcuts to App Actions, see [App\nActions overview](//developers.google.com/assistant/app)."]]