Implementando Rádio com Mídia

A interface do usuário do rádio é implementada como um aplicativo independente. As instruções sobre como integrar uma interface de usuário do rádio ao hardware do rádio podem ser encontradas em Implementação do rádio .

A seção a seguir descreve como integrar a interface do usuário do rádio com a mídia para fornecer aos usuários uma experiência perfeita que permite aos usuários interagir com fontes de mídia e rádio como se fossem um único aplicativo.

Fluxo de usuário de troca de fonte de mídia

O diagrama a seguir ilustra como a implementação de referência de Rádio e Mídia implementa o fluxo de usuário de comutação de aplicativo.

Fluxo de usuário de troca de fonte de mídia

Figura 1. Fluxo de usuário de troca de fonte de mídia

Para fornecer uma transição perfeita entre o rádio e outros aplicativos de mídia, a biblioteca car-media-common define as intenções do Android que podem ser usadas para iniciar um seletor de fonte de mídia. No AOSP, esse seletor é implementado no Iniciador de aplicativos, apresentando a mesma interface do usuário para iniciar aplicativos, mas filtrada para exibir apenas as fontes de mídia.

Os OEMs podem optar por usar a implementação atual do App Launcher como está ou implementar um seletor de fonte de mídia personalizado.

O seletor pode atuar em dois modos:

  • Fluxo normal. Depois de usar o seletor, a fonte selecionada é exibida em Mídia para que o usuário possa navegar por seu conteúdo.
  • Com interruptor. Um seletor é usado para alternar fontes, mas a mídia não é exibida para o usuário. Isso vale para o ícone Seletor na página inicial. Depois de selecionar uma fonte, a tela anterior mais recente é exibida ao usuário (neste caso, a página inicial).

A intenção usada para alternar entre as fontes de mídia pode ser obtida no método MediaSource#getSourceSelectorIntent() , que aceita um booleano popup que retorna uma intenção para iniciar cada um dos fluxos descritos acima.

As intenções reais são definidas em packages/apps/Car/libs/car-media-common/res/values/config.xml . Para personalizar essa configuração, use sobreposições de tempo de compilação.

Substituindo o aplicativo Rádio

Dado que o aplicativo Rádio implementa Navegação de mídia e Sessão de mídia, o Rádio é exibido no iniciador de aplicativos. Para evitar a inicialização do Media quando um usuário clica no ícone, dois elementos são necessários. O rádio deve :

  • Tenha uma atividade de lançador .
  • Seja declarado como uma fonte personalizada . Para fazer isso, inclua o nome do componente na chave custom_media_packages em car-media-common/res/values/config.xml .

Restrições de condução UX

A mídia deve observar todas as restrições de distração de condução de UX. Para fazer isso, a mídia deve ouvir o CarUXRestrictionManager e implementar todas as suas políticas.