![Android Auto user interface](https://developer.android.com/static/images/training/cars/android-auto.png)**Figure 1**: Android Auto

Android Auto provides a driver-optimized app experience for users who have an Android phone with the Android Auto app and a compatible[car or aftermarket stereo system](https://www.android.com/auto/compatibility/). They can use your app directly on their car's display by connecting their phone. You enable Android Auto to connect with your phone app by creating services that Android Auto uses to display a driver-optimized interface to the driver.
| **Note:** Android Auto is only compatible with phones running Android 9 (API level 28) or higher.

## How apps declare support for Android Auto

Apps declare that they support Android Auto in different ways depending on their category.

### Media, messaging, and templated apps

Media, messaging, and templated apps declare support for Android Auto by including the following`<meta-data>`element in their manifest:  

    <application>
        ...
        <meta-data
            android:name="com.google.android.gms.car.application"
            android:resource="@xml/automotive_app_desc"/>
        ...
    </application>

The contents of the resource file vary depending on your app's category:  

### Media

```xml
<automotiveApp>
    <uses name="media" />
</automotiveApp>
      
```

See[Add support for Android Auto to your media app](https://developer.android.com/training/cars/media/auto#manifest-car-app)for more details.

### Messaging

```xml
<automotiveApp>
    <uses name="notification" />
    <!-- Include the following only if your capp can be set as the default SMS handler -->
    <uses name="sms">
</automotiveApp>
      
```

See[Build messaging apps for Android Auto](https://developer.android.com/training/cars/messaging#manifest-messaging)for more details.

### Templated apps

```xml
<automotiveApp>
    <uses name="template" />
</automotiveApp>
      
```

See[Add support for Android Auto to your templated app](https://developer.android.com/training/cars/apps/auto#declare-android-auto-support)for more details.

### Parked apps

Parked apps declare support for Android Auto by including the following`<category>`element in the intent-filter of an activity in your app's manifest:  

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

See[Add support for Android Auto to your parked app](https://developer.android.com/training/cars/parked/auto)for more details.

## Parked apps

On devices running Android 15 or higher, Android Auto supports running activities directly on the head unit while parked. This capability is limited to apps in the[supported parked app categories](https://developer.android.com/training/cars#parked). For safety purposes, Android Auto automatically exits an app when vehicle motion is detected.

### User interface

![Android Auto parked app user interface](https://developer.android.com/static/training/cars/images/parked-ui.png)**Figure 2**: An app running on Android Auto with the back and exit controls shown.

Activities run on Android Auto are always run in full screen. Users can swipe from the top or bottom edge of the Android Auto UI to pull up controls for navigating back or exiting the current app.

### Behavior differences

Due to restrictions imposed by Android Auto and Android more generally, there are some notable behavior differences when an app runs on the head unit.

#### Starting other apps

Because only apps in supported categories that have declared support for Android Auto can have their activities run on the head unit, it is likely that intents to other apps won't open the other app on the head unit. If the intent is for a web page or Google Play Store page, the corresponding app will be opened on the phone instead. All other activity-launching intents are blocked and the user is notified that the corresponding app can't be opened.

#### Accepting permissions

On devices running Android 15, it isn't possible for users to accept runtime permissions requests on the head unit. When an app requests a permission, a dialog appears informing users to accept the permission on their phone screen.

## Trusted stores

As described in[Test in real vehicles](https://developer.android.com/training/cars/testing#real-vehicles), apps must be installed from a trusted source to run on a real vehicle. Trusted sources include the following:

- Google Play
- ONE store

## Frequently asked questions

### How can I detect if Android Auto is running?

To detect whether Android Auto is running on a device, you can use the`CarConnection`API that is part of the Android for Cars App Library. See[Connection API](https://developer.android.com/training/cars/apps#car-connection)for more details.
| **Caution:** On devices running Android 12 or higher, Android Auto doesn't change the[UI mode](https://developer.android.com/reference/android/content/res/Configuration#uiMode)of the device when running, so don't rely on it.

### In which vehicles is Android Auto available?

See the list of[compatible vehicles and stereos](https://www.android.com/auto/compatibility/vehicles/).

### In which countries is Android Auto available?

See[Is Android Auto available in my country?](https://www.android.com/auto/#al-faq)