Платформа Android Auto от Google не является собственно операционной системой. Это мобильное приложение для Android, разработанное Google. Это расширение подключенного Android-смартфона на совместимый автомобиль, который может отображать некоторые приложения и зеркалировать сообщения на приборной панели автомобиля.
Android Auto призван помочь водителю сосредоточиться на дороге, а не на смартфоне. Платформа поддерживает следующие функции: навигация, музыка, телефония, просмотр SMS-сообщений, распознавание голоса.
Android Auto доступен только на устройствах с Android 6.0 или более поздних версий. Android Auto подключается к вашему автомобилю через проводное USB-соединение, но это также можно сделать по беспроводной сети. Для этого вам понадобится смартфон Android с Android 11 или более поздней версии (или устройство Pixel/Samsung на Android 9 и более поздней версии), а также автомобиль с поддержкой беспроводной связи Android Auto.
Когда вы подключаете свой телефон к головному устройству, все ваши автосовместимые приложения становятся доступными в автомобиле.
Android Auto поддерживает следующие типы приложений:
- Медиа-приложения
- Приложения для обмена сообщениями
- Приложения для навигации, парковки и зарядки
Попробуем создать приложение для поиска парковки.
Объявите зависимость
Добавьте приведенную ниже зависимость в файл build.gradle.
implementation “androidx.car.app:app:1.0.0”
Настройте манифесты вашего приложения
Объявите свой CarAppService
Хост подключается к вашему приложению через реализацию CarAppService. Вы объявляете эту службу в своем манифесте, чтобы хост мог обнаружить ваше приложение и подключиться к нему.
Вам также необходимо объявить категорию вашего приложения в элементе category интентов вашего приложения.
Ваше приложение должно объявить либо androidx.car.app.category.PARKING, либо androidx.car.app.category.CHARGING в элементе category в фильтре намерений своего CarAppService.
Укажите название и иконку приложения
Вам необходимо указать имя и иконку приложения, которые хост может использовать для представления вашего приложения в пользовательском интерфейсе автомобильной системы.
Вы можете указать их, используя элементы label и icon вашего CarAppService.
Создайте свой CarAppService и Session
Создайте службу, которая должна расширить класс CarAppService.
Реализуйте метод CarAppService.onCreateSession, который возвращает экземпляр Session.
Получите доступ к карте
Приложения могут получить доступ к шаблону PlaceListMapTemplate, который отображает карту вместе со списком мест.
На карте могут отображаться маркеры, соответствующие местам в вашем списке.
Чтобы получить доступ к этому шаблону, ваше приложение должно объявить разрешение androidx.car.app.MAP_TEMPLATES в своем AndroidManifest.xml.
Создайте свой стартовый экран
Создайте экран, определив классы, расширяющие класс Screen, и реализуйте метод Screen.onGetTemplate, который возвращает экземпляр Template, представляющий состояние UI для отображения на экране автомобиля.
Реализуйте навигацию по экранам
Класс ScreenManager предоставляет стек экранов, который можно использовать для организации экранов. Они используются, когда пользователь нажимает кнопку возврата на экране автомобиля или использует аппаратную кнопку возврата, доступную в некоторых автомобилях.
Объект Action.BACK — это стандартный Action, который автоматически вызывает ScreenManager.pop.
Обработайте пользовательский ввод
Ваше приложение может реагировать на ввод данных пользователем, передавая модели соответствующие слушатели.
Затем метод onClickNavigate может запустить дефолтное автомобильное навигационное приложение с помощью метода CarContext.startCarApp.
Протестируйте свое приложение для Android Auto
Тестировать ваши автомобильные приложения сложно, поэтому Google предоставил DHU (Desktop head Unit). Головное устройство для рабочего стола (DHU) позволяет вашему компьютеру эмулировать головное устройство Android Auto, чтобы вы могли запускать и тестировать приложения Android Auto. DHU работает в системах Windows, macOS и Linux.
Чтобы начать работу с DHU:
- Установите приложение Android Auto на свой телефон Android.
- Установите DHU — откройте SDK Manager и в разделе Extras установите эмулятор Android Auto Desktop Head Unit. Его можно найти в каталоге <sdk>/extras/google/auto.
- Запустите DHU.
-
- Откройте в телефоне приложение Auto Companion и кликните значок меню. Вы найдете только один доступный вариант, например, справку и обратную связь, чтобы включить режим разработчика, коснитесь изображения заголовка 10 раз. Это происходит только при первом запуске приложения.
- Когда режим разработчика включен, вы видите, что в меню доступны еще три параметра. Нажмите «Start head unit server», чтобы запустить его.
- Чтобы установить соединение между DHU и сервером, работающим на нашем телефонном установите порт ADB, введя в терминале adb forward tcp:5277 tcp:5277. Не забывайте этот шаг, без него может возникнуть проблема с сервером ADB или ошибка подключения.
- Запустите DHU.
cd <sdk>/extras/google/auto/
В Linux или OSX: ./desktop-head-unit
В Windows: desktop-head-unit.exe.
Вот и все. Вы готовы создавать и тестировать свои автомобильные приложения для Android.