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

На устройствах с Android 15 или более поздней версии Android Auto поддерживает запуск приложений из поддерживаемых категорий приложений для припаркованных автомобилей непосредственно на стереосистеме. Подробнее о том, как работают приложения, которые можно использовать в припаркованном автомобиле в 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)