No Android 13 e versões mais recentes, os controles de mídia na interface do sistema contêm atualizações nos botões de ação e na reprodução remota. Essas mudanças oferecem uma experiência de controle de mídia mais sofisticada em smartphones e tablets, além de transferências de mídia perfeitas em vários dispositivos.
Atualizações nos controles de mídia
Esta seção descreve as atualizações feitas nos controles de mídia no Android 13 para botões de ação e reprodução remota.
Mudanças no botão de ação
Para garantir que os usuários possam acessar um conjunto avançado de controles de mídia para apps
que reproduzem mídia, os botões de ação nos controles de mídia do Android 13
são derivados dos estados de ação
PlaybackState
.
Com essa mudança, a função MediaDataManager#createActionsFromState
gera informações do botão de ação com base no estado de ação PlaybackState
.
Isso está alinhado à maneira como os controles de mídia são renderizados em outras plataformas Android, como
o Android Auto, o Google Assistente e o Wear.
Por outro lado, no Android 12, os botões de ação nos controles
de mídia eram determinados por ações de notificação
adicionadas a uma notificação
MediaStyle
.
Para um resumo das mudanças compatíveis com o app nas atualizações do botão de ação, consulte
StatusBarManager
.
API Remote playback
Para oferecer uma experiência de mídia coesa em várias plataformas, começando
pelo Android 13, uma nova API do sistema Notification#setRemotePlaybackInfo
foi adicionada para marcar notificações de mídia na interface do sistema de controle de mídia para
reprodução remota. Essa API permite que os apps do sistema que postam as notificações
faça o seguinte:
- Fornece informações e funcionalidade para mídia originada em um dispositivo remoto para o comutador de saída padrão no controle de mídia.
- Substitua a affordance do seletor de saída, se necessário.
Os apps do sistema que usam essa notificação precisam ter a permissão
MEDIA_CONTENT_CONTROL
.
A API Notification#setRemotePlaybackInfo
também adiciona o
extras
abaixo para determinar o nome, o ícone e a intent do dispositivo de reprodução remota:
Notification#EXTRA_MEDIA_REMOTE_DEVICE
Notification#EXTRA_MEDIA_REMOTE_ICON
Notification#EXTRA_MEDIA_REMOTE_INTENT
Com essas informações, a IU do sistema pode substituir as informações do dispositivo padrão do comutador de saída e adicionar o controle de mídia para reprodução remota ao final da lista de controles de mídia local.
Implementação do controle de mídia
Os OEMs precisam estar cientes dessa mudança no comportamento padrão, porque ela afeta a forma como os controles de mídia para apps são gerados. Os OEMs também precisam garantir que a nova API do sistema funcione conforme aplicável no recurso de alternância de saída.
Os OEMs não precisam fazer nenhuma mudança e podem usar a implementação padrão no AOSP.
Personalização da reprodução remota
Nos casos em que o OEM tem um app do sistema que envia notificações de
reprodução de mídia remota, o app pode chamar setRemotePlaybackInfo
para
notificação, desde que tenha recebido a permissão
MEDIA_CONTENT_CONTROL
. No entanto, isso não é um requisito, e o parceiro pode optar por não
personalizar.
Validação do controle de mídia
Para testar o controle de mídia na interface do sistema, execute um teste manual para validar o seguinte:
- Os botões funcionam conforme o esperado durante a reprodução de mídia em um app.
- O seletor mostra as informações corretas do dispositivo.
Use os seguintes testes para validar a API de reprodução remota:
- Testes CTS em
NotificationManagerTest
, comotestMediaStyleRemotePlayback_noPermission
etestMediaStyleRemotePlayback_hasPermission
. - Testes de unidade em
com.android.systemui.media
.
Consulte o novo requisito de CDD [3.8.3.1/H-1-SR] para recomendações.