De acordo com a diretriz MA-1 de qualidade de aplicativos Android para carros :
As diretrizes sugerem a leitura de Implement play comandos que se referem às instruções para definir PlaybackState inicial . Isto afirma:
Seu app não deve começar a reproduzir música automaticamente quando o Android Automotive OS ou o Android Auto se conectar ao serviço de navegador de mídia.
Isso parece claro: ao iniciar o Android Auto, a música não deve ser reproduzida automaticamente.
No entanto, não consigo ver uma maneira óbvia de detectar quando o Android Auto inicia e se conecta ao aplicativo.
Meu aplicativo de mídia tem funcionalidade que é reproduzida automaticamente quando você o usa em um telefone celular e foi deixado no estado "reproduzindo" pela última vez. Portanto, preciso desativar isso quando o Android Auto se conectar.
Quando o Android Auto se conecta, MediaSessionCompat.Callback:onPlay
é invocado. No entanto, o mesmo retorno de chamada onPlay
é feito se o usuário clicar no ícone "Play". Obviamente, se um usuário clicar no ícone Play, a música deverá tocar.
Então, como posso saber se o usuário pressionou play manualmente ou se o Android Auto se conectou ao aplicativo?
Você pode fazer isso em
MediaBrowserCompat.ConnectionCallback()
. Provavelmente, você tem um serviço de navegador de mídia configurado para sua implementação do Android Auto. Ele possui umonConnected()
método específico para essa finalidade e você pode usá-lo para processar qualquer lógica sempre que seu aplicativo iniciar essa conexão