Calling experiences are in beta  
At this time, anyone can publish communication apps with calling experiences to internal testing and closed testing tracks on the Play Store. Publishing to open testing and production tracks will be permitted at a later date.  
[Nominate yourself to be an early access partner →](https://forms.gle/VsXEdDEBidxw8q8u8)  
![](https://developer.android.com/static/images/picto-icons/test-tube-2.svg)

Apps that support making voice calls can improve their experience on Android
Auto by integrating with the [Telecom Jetpack library](https://developer.android.com/develop/connectivity/telecom) and
providing a templated user interface built using the [Android for Cars App
Library](https://developer.android.com/training/cars/apps).

## Integrate with the Jetpack Telecom library

To support answering and controlling calls on Android Auto, your app must
integrate with the Telecom Jetpack library as described in [Build a calling
app](https://developer.android.com/develop/connectivity/telecom/voip-app). In particular, your app must support the callbacks
described in [Remote surface support](https://developer.android.com/develop/connectivity/telecom/voip-app/telecom#remote-surface-support). Your app must also use
its telecom integration at all times, not just when a user's phone is running
Android Auto.
| **Important:** Additional requirements for your app's telecom integration will be provided in this guide soon.

## Build a templated calling experience

In addition to the in-call view that Android Auto provides and which is powered
by your app's telecom integration, your app can provide a templated experience
to let users access your app's content on their car screen. For example, your
app can display a list of contacts with actions to start a call, an agenda view
of upcoming calls, a call log, and more. While a call is ongoing, Android Auto
automatically displays its in-call view for the duration of the call, replacing
your app's templated screens.

Follow the guidance in [Use the Android for Cars App Library](https://developer.android.com/training/cars/apps) and [Add
support for Android Auto to your templated app](https://developer.android.com/training/cars/apps/auto) to get started
building your app's templated experience. Then, refer to the guidance on this
page to understand the specific requirements for calling apps.

### Configure your app's manifest files

To inform Android Auto of your app's capabilities, your app must do the
following:

#### Declare category support in your manifest

Your app needs to declare the `androidx.car.app.category.CALLING`
[car app category](https://developer.android.com/training/cars/apps#supported-app-categories) in the intent
filter of its [`CarAppService`](https://developer.android.com/reference/androidx/car/app/CarAppService).  

    <application>
        ...
       <service
           ...
            android:name=".MyCarAppService"
            android:exported="true">
          <intent-filter>
            <action android:name="androidx.car.app.CarAppService" />
            <category android:name="androidx.car.app.category.CALLING"/>
          </intent-filter>
        </service>
        ...
    <application>

| **Important:** If your app supports both calling and [messaging](https://developer.android.com/training/cars/communication/messaging), include both `androidx.car.app.category.CALLING` and `androidx.car.app.category.MESSAGING` `<category>` elements in the same intent filter.

## Distribute calling apps

Because apps that support calling can only be published to Internal Testing and
Closed Testing tracks on Google Play, you shouldn't promote builds that include
support to Open Testing or Production tracks, as submissions containing builds
on those tracks will be rejected.