Implementando Rádio com Mídia

A Radio UI é implementada como um aplicativo independente. Instruções sobre como integrar uma interface do usuário de rádio ao hardware de rádio podem ser encontradas em Implementing Radio .

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 que os usuários interajam 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 aplicativos.

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

Figura 1. Fluxo de usuário de comutação de fonte de mídia

Para fornecer uma transição perfeita entre Rádio e outros aplicativos em 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 filtrado para exibir apenas fontes de mídia.

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

O seletor pode atuar em dois modos:

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

O intent usado para alternar entre as fontes de mídia pode ser obtido no método MediaSource#getSourceSelectorIntent() , que aceita um booleano popup -up que retorna um intent 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 em tempo de compilação.

Substituindo o aplicativo Rádio

Dado que o aplicativo Radio implementa Media Browse e Media Session, Radio é exibido no inicializador de aplicativos. Para evitar o lançamento de mídia quando um usuário clica no ícone, são necessários dois elementos. O rádio deve :

  • Tenha uma atividade de lançador .
  • Seja declarado como uma fonte personalizada . Para fazer isso, adicione o nome do componente à 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 UX. Para isso, a Mídia deve ouvir o CarUXRestrictionManager e implementar todas as suas políticas.