A interface do rádio é implementada como um app independente. As instruções sobre como integrar uma interface de rádio ao hardware de rádio podem ser encontradas em Implementar rádio.
A seção a seguir descreve como integrar a interface do rádio à mídia para oferecer aos usuários uma experiência perfeita que permite interagir com fontes de mídia e rádio como se fossem um único app.
Fluxo de usuários de troca de origem 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 troca de apps do usuário.
Figura 1. Fluxo de usuários de troca de origem de mídia
Para oferecer uma transição perfeita entre o app Rádio e outros apps de mídia, a
biblioteca car-media-common
define intents do Android que podem ser usadas para iniciar um seletor de
fontes de mídia. No AOSP, esse seletor é implementado no App Launcher, apresentando a mesma interface
para iniciar apps, mas filtrado para mostrar apenas fontes de mídia.
Os OEMs podem usar a implementação atual do App Launcher como está ou implementar um seletor de fontes 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 pelo conteúdo.
- Como um switch. Um seletor é usado para alternar origens, mas a mídia não é exibida para o usuário. Isso é verdade para o ícone do seletor na página inicial. Depois de selecionar uma fonte, a tela anterior mais recente é exibida para o usuário (neste caso, a página inicial).
A intent usada para alternar entre fontes de mídia pode ser obtida no
método MediaSource#getSourceSelectorIntent()
, que aceita um booleano popup
que retorna uma intent para iniciar cada um dos fluxos descritos acima.
As intents reais são definidas em
packages/apps/Car/libs/car-media-common/res/values/config.xml
. Para
personalizar essa configuração, use sobreposições no momento da criação.
Substituir o app Rádio
Como o app Radio implementa o recurso de navegação de mídia e sessão de mídia, o botão de rádio é exibido no Acesso rápido aos apps. Para impedir a inicialização do app de mídia quando um usuário clica no ícone, dois elementos são necessários. O rádio precisa:
- ter uma atividade de tela de início;
- ser declarada como origem personalizada. Para fazer isso, adicione o nome do componente à
chave
custom_media_packages
emcar-media-common/res/values/config.xml
.
Restrições de direção de UX
A mídia precisa observar todas as restrições de distração da UX. Para isso, a mídia precisa ouvir o CarUXRestrictionManager e implementar todas as políticas.
- A mídia precisa se conectar à biblioteca Car e receber uma instância de CarUXRestrictionManager.
- A mídia precisa se inscrever nas atualizações na lista de CarUxRestrictions e implementá-las conforme documentado.
- Os seguintes pontos são particularmente importantes para mídia:
UX_RESTRICTIONS_NO_SETUP
. Nesse caso, o fluxo de login precisa ser desativado.UX_RESTRICTIONS_LIMIT_STRING_LENGTH
. Mensagens de erro e outros textos fornecidos pelos apps de mídia precisam ser limitados ao comprimento especificado.