ケーパビリティを追加する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

shortcuts.xml にケーパビリティを追加することで、アプリを起動して特定タスクを直接実行するためにユーザーがとれるアクションを宣言できます。たとえば、Google アシスタント App Actions は、ケーパビリティを使用してデベロッパーがアプリ内機能を組み込みインテント(BII)に拡張できるようにし、これらの機能をユーザーが音声コマンドで起動、操作できるようにします。ケーパビリティは、アクションの名前と、ユーザー インテントを解決するアプリ内デスティネーションをターゲットとする intent で構成されます。

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

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

  1. 静的ショートカットを作成するの手順に沿って、shortcuts.xml リソースを作成します。
  2. 次に、以下の必須情報をケーパビリティ定義に含めます。

    • ケーパビリティ名: アプリでサポートするアクション。ケーパビリティを定義する必要がある機能については、コンポーネントのドキュメントをご覧ください。App Actions 音声対応コマンドは、ケーパビリティ名に BII Action ID を使用します。詳しくは、組み込みインテントのリファレンスをご覧ください。たとえば、GET_THING BII の Action IDactions.intent.GET_THING です。

    • アプリ デスティネーション: アプリ内でユーザーのリクエストに応えるアクションが開始されるデスティネーション。capability 内にネストされた intent 要素を使用してアプリ デスティネーションを定義します。

    • パラメータ マッピング: 各 intent には、インテントの extra データとして渡されるパラメータが含まれる場合があります。たとえば、各 App Actions BII には、BII をトリガーするクエリでユーザーがよく使う情報を表すフィールドが含まれています。

次の例は、shortcuts.xml 内での actions.intent.START_EXERCISE(アシスタントを使った音声コマンドでフィットネス アプリのワークアウトを開始できるようにする 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 に、組み込みインテント パラメータ exercise.name のサポートと、ユーザーから収集されたパラメータ値を intent の extra データとして渡す方法を宣言しています。

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

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

ショートカットを App Actions に関連付ける方法について詳しくは、App Actions の概要をご覧ください。