Реализация радио с медиа

Пользовательский интерфейс Radio реализован как независимое приложение. Инструкции о том, как интегрировать пользовательский интерфейс Radio в аппаратное обеспечение радио, можно найти в Implementing Radio .

В следующем разделе описывается, как интегрировать Radio UI с Media, чтобы предоставить пользователям беспрепятственный опыт, который позволяет пользователям взаимодействовать с источниками мультимедиа и радио, как если бы они были одним приложением.

Медиа-источник переключения пользовательского потока

На следующей диаграмме показано, как эталонная реализация Radio and Media реализует пользовательский поток переключения приложений.

Медиа-источник переключения пользовательского потока

Рисунок 1. Пользовательский процесс переключения источника мультимедиа

Чтобы обеспечить плавный переход между Radio и другими приложениями в Media, библиотека car-media-common определяет намерения Android, которые можно использовать для запуска средства выбора источника мультимедиа. В AOSP этот селектор реализован в средстве запуска приложений, предоставляя тот же пользовательский интерфейс для запуска приложений, но отфильтрованный для отображения только источников мультимедиа.

OEM-производители могут использовать текущую реализацию средства запуска приложений как есть или внедрить настраиваемый селектор источника мультимедиа.

Селектор может работать в двух режимах:

  • Нормальный поток. После использования селектора выбранный источник отображается в Media, чтобы пользователь мог просматривать его содержимое.
  • Как переключатель. Селектор используется для переключения источников, но медиа не отображается пользователю. Это верно для значка Selector на главной странице. После выбора источника пользователю отображается последний предыдущий экран (в данном случае Домашняя страница).

Намерение, используемое для переключения между источниками мультимедиа, может быть получено из метода MediaSource#getSourceSelectorIntent() , который принимает popup логическое значение, возвращающее намерение запустить каждый из описанных выше потоков.

Фактические намерения определены в packages/apps/Car/libs/car-media-common/res/values/config.xml . Чтобы настроить эту конфигурацию, используйте наложения времени сборки.

Замена приложения «Радио»

Учитывая, что приложение «Радио» реализует «Просмотр мультимедиа» и «Сеанс мультимедиа», радио отображается в панели запуска приложений. Чтобы предотвратить запуск мультимедиа, когда пользователь щелкает значок, необходимы два элемента. Радио должно :

  • Иметь активность запуска .
  • Быть объявленным как пользовательский источник . Для этого добавьте имя компонента в ключ custom_media_packages в файле car-media-common/res/values/config.xml .

Ограничения вождения UX

СМИ должны соблюдать все ограничения на отвлекающие факторы, связанные с вождением UX. Для этого Media должен прослушивать CarUXRestrictionManager и реализовывать все его политики.

  • Носитель должен подключиться к библиотеке Car и получить экземпляр CarUXRestrictionManager .
  • СМИ должны подписываться на обновления в списке CarUxRestrictions и реализовывать их в соответствии с документацией.
  • Особое значение для СМИ имеют:
    • UX_RESTRICTIONS_NO_SETUP . В этом случае поток входа должен быть отключен.
    • UX_RESTRICTIONS_LIMIT_STRING_LENGTH . Сообщения об ошибках и другой текст, предоставляемый мультимедийными приложениями, должны быть ограничены заданной длиной.