ショートカットに機能を追加する

shortcuts.xml の機能を使用すると、ユーザーがアプリを起動して特定のタスクを直接実行するために実行できるアクションのタイプを宣言できます。ケーパビリティは、アクションの名前と、ユーザーの意図を解決するアプリ内のデスティネーションをターゲットとする intent で構成されます。

shortcuts.xml にケーパビリティを定義する

Android アプリ開発プロジェクトの shortcuts.xml リソース ファイルに capability 要素を定義します。capability 要素を定義する手順は次のとおりです。

  1. 静的ショートカットを作成するの手順に沿って、shortcuts.xml リソースを作成します。
  2. 機能には、次の必須情報を含めます。

    • ケーパビリティ名: アプリでサポートするアクション。機能定義を必要とする機能については、コンポーネントのドキュメントをご覧ください。

    • アプリのデスティネーション: ユーザー リクエストを遂行するためにアクションが起動するアプリ内のデスティネーション。capability 内にネストされた intent 要素を使用して、アプリのデスティネーションを定義します。

    • パラメータ マッピング: 各 intent には、インテントの extra データとして渡されるパラメータが含まれる場合があります。

次の例は、actions.intent.START_EXERCISE の shortcuts.xml でのケーパビリティ定義を示しています。これは、ユーザーがアシスタントで音声コマンドを使用してフィットネス アプリでワークアウトを開始できるようにする BII です。

<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>

上記の例では、<capability> android:name 属性が START_EXERCISE BII を参照しています。ユーザーがアシスタントに「OK Google, ExampleApp でランニングを開始」と話しかけると、アシスタントは intent 要素にネストされた定義情報を使ってユーザーのリクエストに応えます。この例の intent では、次の情報を定義しています。

  • android:targetPackage に、このインテントのターゲット アプリケーション パッケージを設定しています。
  • android:targetClass に、デスティネーション アクティビティ(com.example.sampleApp.ExerciseActivity)を設定しています。
  • インテント parameter は、BII パラメータ exercise.name のサポートと、ユーザーから収集したパラメータ値を intent の追加データとして渡す方法を宣言します。

ショートカットとケーパビリティを関連付ける

ケーパビリティを定義したら、静的または動的なショートカットを関連付けることで、その機能を拡張できます。ショートカットが capability にリンクされる方法は、実装される機能と、ユーザーのリクエストに含まれる実際の単語によって異なります。たとえば、ユーザーがアシスタントに「OK Google, ExampleApp でランニングを開始」と話しかけて、フィットネス トラッキング アプリでランニングを開始する場合です。アシスタントは、ショートカットを使用して、exercise.name パラメータに有効な「ランニング」のエクササイズ エンティティを定義する capability のインスタンスを起動できます。