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.
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
emcar-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.
- A mídia deve se conectar à biblioteca Car e obter uma instância de CarUXRestrictionManager .
- A mídia deve assinar as atualizações na lista de CarUxRestrictions e implementá-las conforme documentado.
- Particularmente importantes para a mídia são:
-
UX_RESTRICTIONS_NO_SETUP
. Nesse caso, o fluxo de login deve ser desabilitado. -
UX_RESTRICTIONS_LIMIT_STRING_LENGTH
. As mensagens de erro e outros textos fornecidos pelos aplicativos de mídia devem ser limitados ao tamanho especificado.
-