Antecedentes: Eu tenho um fone de ouvido Bluetooth A2DP / AVRCP ( Nokia BH-505 ) que uso ativamente para ouvir podcasts e música. Claro, eu os ouço com aplicativos diferentes. O fone de ouvido bluetooth possui alguns botões de "comando" (AVRCP), relevantes para o áudio específico: "próxima faixa", "faixa anterior" e "reproduzir / pausar"
Atualmente, sempre que pressiono um dos comandos, um dos tocadores de música que eu instalei ( Meridian ) sempre recebe o comando - mesmo quando não está ativo. Portanto, quando clico em "reproduzir / pausar" com a intenção de pausar um podcast ( DoggCatcher ), o Meridian é ativado e começa a tocar música junto com o podcast.
Ambos os jogadores estão configurados para usar o fone de ouvido: DoggCatcher tem "Bind to headset" ativado e Meridian tem "Headset Buttons" ativado. Atualmente, estou usando o estoque não raiz Android 2.2.1 no GT-S5570, mas pode estar fazendo root e atualizando para o 2.3 CyanogenMod (ou algo semelhante) no futuro.
Ignorando os detalhes, minha pergunta sobre isso é mais geral:
- Como o Android determina qual aplicativo reage a esses comandos? Estou interessado mesmo em uma resposta muito técnica.
No lado prático, estou interessado em:
- Preciso mexer nas configurações de cada aplicativo para determinar qual aplicativo aceita os comandos ou existe alguma maneira geral de determinar isso?
- Existe uma maneira de configurar isso para que o aplicativo realmente ativo receba automaticamente sempre a prioridade? (como foi solicitado parcialmente em outra pergunta )
Como esta pergunta difere de perguntas semelhantes:
"Como definir o comportamento do botão 'Play' no Bluetooth Remote" - apenas foco prático e diferente, até o momento não tem respostas, e também estou interessado em respostas que exigiriam root ou firmware personalizado (especialmente o CyanogenMod).
Alterar o aplicativo padrão para lidar com os controles do fone de ouvido - um problema exato que foi corrigido, mas não de uma maneira que respondesse às minhas perguntas, embora dê algumas dicas sobre como as coisas funcionam.
Como faço para que o botão dos meus fones de ouvido controle algo diferente do player de música stock?- pergunta parcialmente semelhante no lado prático, mas não se concentra em explicar como ele realmente funciona, e a única resposta é focada na parte sobre a qual não estou perguntando (fazer apenas um aplicativo receber os comandos).
por que todos os aplicativos de som recebem eventos de botão bluetooth, todos de uma vez - muito semelhantes, mas perguntando sobre um problema específico (todos os players de mídia que recebem o comando AVRCP)