This guide describes how to set up and run an Android Automotive instance with Google built-in. This guide also describes how to test the third-party Google APIs for use with navigation and voice solutions.

To learn more about these APIs, see[Implement navigation app intents](https://developer.android.com/develop/devices/assistant/intents-assistant-nav-app)and[Google Maps for Android Automotive Intents](https://developer.android.com/training/cars/platforms/automotive-os/android-intents-automotive).

![Intent data flow](https://developer.android.com/static/training/cars/testing/images/gas-intents-custom-assist.svg)

As shown, you can use three types of intents to describe the interaction between an[assistant](https://source.android.com/docs/automotive/voice/voice_interaction_guide)application and Google Maps: navigation, search and custom action. Equally, these intents describe the interaction between a Google Assistant and a[navigation](https://developer.android.com/training/cars/apps/navigation)application.

![Intent data flow](https://developer.android.com/static/training/cars/testing/images/gas-intents-custom-nav.svg)

This content describes how to test the intents from an assistant application with Google Maps. We also describe how integrate a navigation application to receive intents from Google Assistant or other assistant apps.

## Setup

To get started:

1. Download and install[Android Studio](https://developer.android.com/studio).
2. Open**Tools \> Device Manager** and add the**Automotive (1408p landscape) with Google Play**image.
3. Start the emulator image and sign in to Google Play. Search for and update Google Assistant.
4. Extract the contents of our[demo application project](https://developer.android.com/static/training/cars/testing/gas-intents/GasIntentTests.tgz)and open the project in Android Studio (**File \> Open...**).
5. Select**Run \> Run automotive**to install and start the demo application in the emulator.

## Demo

[Implement navigation app intents](https://developer.android.com/develop/devices/assistant/intents-assistant-nav-app)and[Google Maps for Android Automotive Intents](https://developer.android.com/training/cars/platforms/automotive-os/android-intents-automotive)describe the three types of intents you can execute: navigation, search, and custom action.
![Main activity of demo application](https://developer.android.com/static/training/cars/testing/images/gas-intents-demo.png)Main activity of demo application

Google Maps executes the triggered operations.

To specify the demo application as the receiver of the intents triggered by Google Assistant:

1. Go to**Settings \> Google \> Google Assistant \> Default navigation app.**

   ![Select the default navigation App](https://developer.android.com/static/training/cars/testing/images/gas-intents-intent-dst.png)Figure 1. Select the default navigation App.
2. Click the**Microphone** icon and speak a query. For example "Nearby restaurants.". See[Extended controls, settings, and help](https://developer.android.com/studio/run/emulator-extended-controls#microphone)if the microphone does not work as expected. The intent URI is sent by Google Assistant to the navigation app to process further.

   ![Output of Google Assistant generated Intent](https://developer.android.com/static/training/cars/testing/images/gas-intents-demo-uri.png)Figure 2. Output of Google Assistant generated Intent.

### Technical Details

You can use the Android Debug Bridge (adb) to trigger intents from the console. To learn more, see[gas-intents-console-tests.txt](https://developer.android.com/static/training/cars/testing/gas-intents/gas-intents-console-tests.txt).

To designate that an application can receive intents from Google Assistant, include this code in the`AndroidManifest.xml`file of the navigation application:  

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

To add the app to**Settings \> Google \> Google Assistant \> Default navigation app**so that it can be seen and selected, add:  

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