Android Automotive OS でナビゲーション アプリのインテントをテストする

Android Automotive OS 上のカスタムアプリと Google アシスタント、Google マップの相互運用性をテストします。

概要

このガイドでは、Google 組み込みで Android Automotive インスタンスを設定して実行する方法について説明します。このガイドでは、ナビゲーション ソリューションと音声ソリューションで使用するサードパーティの Google API をテストする方法についても説明します。

これらの API について詳しくは、ナビゲーション アプリのインテントを実装するAndroid Automotive 向け Google マップ インテントをご覧ください。

インテント データフロー

図に示すように、アシスタントとナビゲーションの間のインタラクションを記述するために、ナビゲーション、検索、カスタム アクションの 3 種類のインテントを使用できます。このコンテンツでは、Google マップでインテントをテストする方法について説明します。また、Google アシスタントからインテントを受け取るようにカスタム ナビゲーション アプリケーションを統合する方法についても説明します。

設定

手順:

  1. Android Studio をダウンロードしてインストールします。
  2. [Tools] > [Device Manager] を開き、Automotive (1408p landscape) with Google Play イメージを追加します。
  3. エミュレータ イメージを起動して、Google Play にログインします。Google アシスタントを検索して更新します。
  4. デモ アプリケーション プロジェクトの内容を抽出し、Android Studio でプロジェクトを開きます([File] > [Open...])。
  5. [Run] > [Run automotive] を選択して、エミュレータにデモ アプリケーションをインストールして起動します。

デモ

ナビゲーション アプリのインテントを実装するAndroid Automotive 向け Google マップのインテントでは、実行できる 3 種類のインテント(ナビゲーション、検索、カスタム アクション)について説明しています。

デモ アプリケーションのメイン アクティビティ
デモ アプリケーションのメイン アクティビティ

Google マップがトリガーされたオペレーションを実行します。

Google アシスタントによってトリガーされたインテントのレシーバとしてデモ アプリケーションを指定するには:

  1. [設定] > [Google] > [Google アシスタント] > [デフォルトのナビゲーション アプリ] に移動します。

    デフォルトのナビゲーション アプリを選択する
    図 1. デフォルトのナビゲーション アプリを選択します。
  2. [マイク] アイコンをクリックして、クエリを話します。たとえば、「近くのレストラン」などです。マイクが想定どおりに動作しない場合は、拡張コントロール、設定、ヘルプをご覧ください。インテント URI は、Google アシスタントからナビゲーション アプリに送信され、さらに処理されます。

    Google アシスタントが生成したインテントの出力
    図 2. Google アシスタントが生成したインテントの出力。

技術的な詳細

Android Debug Bridge(adb)を使用して、コンソールからインテントをトリガーできます。詳しくは、gas-intents-console-tests.txt をご覧ください。

アプリが Google アシスタントからインテントを受け取れるように指定するには、ナビゲーション アプリの AndroidManifest.xml ファイルに次のコードを追加します。

   <!-- Navigation Intent -->
    <intent-filter>
      <action android:name="androidx.car.app.action.NAVIGATE" />
      <category android:name="android.intent.category.DEFAULT"/>
      <data android:scheme="geo" />
    </intent-filter>

    <!-- Search Intent -->
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT"/>
      <data android:scheme="geo" />
    </intent-filter>

    <!-- Custom Action Intents -->
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT"/>
      <data android:scheme="geo.action" />
    </intent-filter>

アプリを [設定] > [Google] > [Google アシスタント] > [デフォルトのナビゲーション アプリ] に追加して、表示および選択できるようにするには、以下を追加します。

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.APP_MAPS" />
    </intent-filter>