Как добавить поддержку Android Auto в приложение для припаркованного автомобиля

На устройствах с Android 15 или более поздней версии Android Auto поддерживает запуск приложений из поддерживаемых категорий приложений для использования на парковке непосредственно на стереосистеме. Подробнее о приложениях, которые можно использовать в припаркованном автомобиле…

Как заявить о поддержке Android Auto

Чтобы объявить о поддержке Android Auto, необходимо включить следующий элемент <category> в фильтр интентов объекта Activity в манифесте приложения:

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

Как правило, элемент категории android.intent.category.CAR_LAUNCHER можно поместить в тот же фильтр интентов, что и элемент android.intent.category.LAUNCHER, но при необходимости можно использовать и другой фильтр.

Записи в манифесте для определенных категорий

Помимо указанного выше требования, для игр действует дополнительное. Подробнее о том, как отметить приложение как игру…

Поддержка распространенных размеров экранов Android Auto

Чтобы пользователям было удобнее, рекомендуем сделать приложение полностью адаптивным к экранам разных размеров. Чтобы обеспечить высокое качество работы приложения в разных автомобилях с поддержкой Android Auto, оно не должно значительно сужаться по бокам на горизонтальных экранах. Это требование описано в DO-2.

Например, если приложение работает в портретной ориентации с черными полосами по бокам на экране с альбомной ориентацией, оно будет отклонено при проверке в Google Play. Приложение, запущенное в горизонтальной ориентации с минимальным количеством черных полос по бокам на горизонтальном экране, считается приемлемым. Также приемлемо приложение, запущенное в горизонтальной ориентации с черными полосами сверху и снизу на вертикальном экране.

Проверьте канонические размеры экрана

При создании и тестировании приложения для Android Auto вы можете использовать следующие конфигурации головного устройства для ПК, чтобы убедиться, что оно соответствует указанным выше требованиям:

Малый пейзаж

[general]
resolution = 800x480
dpi = 160
...

Широкий пейзаж

[general]
resolution = 1920x1080
dpi = 160
marginheight = 596
normalizedpi = true
cropmargins = true
...

Портрет

[general]
resolution = 1920x1080
dpi = 160
marginwidth = 878
normalizedpi = true
cropmargins = true
...

Как отслеживать использование Android Auto

Если вы хотите определить, когда ваше приложение используется через Android Auto (например, для сбора статистики), вы можете проверить два сигнала:

  • Состояние подключения, сообщаемое API CarConnection. Когда Android Auto подключен, значок будет выглядеть так: CONNECTION_TYPE_PROJECTION.
  • Идентификатор активного дисплея. Если приложение запущено на внешнем дисплее, например через Android Auto, значение будет отличаться от DEFAULT_DISPLAY.

В следующем фрагменте кода показано, как объединить эти сигналы, чтобы определить, используется ли приложение через Android Auto:

val displayId = context.display?.displayId ?: DEFAULT_DISPLAY
isRunningOnAndroidAuto = (connectionType == CONNECTION_TYPE_PROJECTION) && (displayId != DEFAULT_DISPLAY)