A partir do Android 13, os controles de mídia na interface do usuário do sistema contêm atualizações para botões de ação e reprodução remota. Essas alterações oferecem suporte a uma experiência de controle de mídia mais polida em telefones e tablets e oferecem transferências de mídia perfeitas entre 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 aplicativos 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 alteração, a função MediaDataManager#createActionsFromState
gera informações do botão de ação com base no estado da ação PlaybackState
. Isso se alinha com a forma como os controles de mídia são renderizados em outras plataformas Android, como Auto, Assistant e Wear.
Por outro lado, no Android 12, os botões de ação nos controles de mídia foram determinados por ações de notificação adicionadas a uma notificação MediaStyle
.
Para obter um resumo das alterações compatíveis com o aplicativo para as atualizações do botão de ação, consulte StatusBarManager
.
API de reprodução remota
Para oferecer uma experiência de mídia coesa em uma variedade de superfícies, a partir do Android 13, uma nova API Notification#setRemotePlaybackInfo
do sistema foi adicionada para marcar as notificações de mídia na interface do usuário do sistema de controle de mídia para reprodução remota. Essa API permite que os aplicativos do sistema que publicam as notificações façam o seguinte:
- Forneça informações e funcionalidades para mídia originadas em um dispositivo remoto para o comutador de saída padrão no controle de mídia.
- Substitua a funcionalidade do comutador de saída, se necessário.
Os apps do sistema que usam essa notificação devem ter a permissão MEDIA_CONTENT_CONTROL
.
A API Notification#setRemotePlaybackInfo
também adiciona os seguintes extras
para determinar o nome, o ícone e a intenção 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 interface do usuário do sistema pode substituir as informações do dispositivo de chip do comutador de saída padrão 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 devem estar cientes dessa mudança no comportamento padrão, porque ela afeta como os controles de mídia para aplicativos são gerados. Os OEMs também devem garantir que a nova API do sistema funcione conforme aplicável em seu recurso de switcher de saída.
Os OEMs não precisam fazer alterações e podem usar a implementação padrão no AOSP.
Personalização da reprodução remota
Nos casos em que o OEM tem um aplicativo de sistema que publica notificações de reprodução de mídia remota, o aplicativo pode, opcionalmente, 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 usuário do sistema, execute um teste manual para validar o seguinte:
- Os botões funcionam conforme o esperado durante a reprodução de mídia de um aplicativo.
- O comutador de saída exibe 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 obter recomendações.