Vad avgör vilken applikation som fungerar med ett Bluetooth AVRCP-kommando?

Bakgrund: Jag har ett A2DP / AVRCP bluetooth-headset ( Nokia BH -505 ) som jag använder aktivt för att lyssna på både podcasts och musik. Naturligtvis lyssnar jag på dessa med olika appar. Bluetooth-headsetet har några ”kommandoknappar” (AVRCP), relevanta för ljud – specifikt: ”nästa spår”, ”föregående spår” och ”spela / pausa”

För närvarande när jag trycker på något av kommandona , en av de musikspelare jag har installerat ( Meridian ) får alltid kommandot – även när det inte är aktivt. Så när jag klickar på ”spela / pausa” tänker pausa en podcast ( DoggCatcher ), istället aktiveras Meridian och börjar spela musik tillsammans med podcasten.

Båda spelarna är inställda på använder headsetet: DoggCatcher har ”Bind to headset” påslagen och Meridian har ”Headset Buttons” aktiverat. Jag använder för närvarande icke rotat lager Android 2.2.1 på GT-S5570 men kan rota och uppgradera till 2.3 CyanogenMod ( eller liknande), i framtiden.

Jag ignorerar detaljerna, min fråga om detta är mer allmän:

  • Hur bestämmer Android vilken app som får att reagera på dessa kommandon? Jag är intresserad även av ett mycket tekniskt svar.

På den praktiska sidan är jag intresserad av:

  • Måste jag lura med varje applikationsinställning för att bestämma vilken applikation som tar kommandona, eller finns det något allmänt sätt att bestämma detta?
  • Finns det ett sätt att konfigurera detta så att applikationen ”s faktiskt aktiv automatiskt alltid skulle få prioritet? (som ställdes delvis i en annan fråga )

Hur denna fråga skiljer sig från liknande frågor:

Kommentarer

Svar

media-button-router , som redan nämns i en av dina länkade frågor, försöker att räkna ut vilken app som för närvarande spelar musik och att skicka AVRCP-händelser till den. Dessutom listas alla installerade appar som deklarerar att lyssna på AVRCP-händelser.

Vad gör AVRCP komplicerat: Vissa appar, som Sonys Music Unlimited , verkar inte förklara android.intent.action.MEDIA_BUTTON i sitt manifest. Av detta (eller kanske någon annan) anledning kan de inte styras via media- knapp-router. Jag vet att t.ex. Music Unlimited kan styras via AVRCP eftersom jag läste den i en användarkommentar och jag kunde också få den igång en gång men tyvärr är den inte reproducerbar. Så i dessa fall verkar det som om vi måste vänta på en apps uppdatering med en ren implementering av AVRCP-händelseshantering.

Enligt media-button-router ”s wiki ”Medieknapp Avsiktlig hantering sker genom beställda sändningar, och varje app ställer in sin egen prioritet för mottagning.” Så det kan vara möjligt att skriva en app som visar dessa prioriteringar och i själva verket skulle låter dig bestämma vilken ansökan som ska starta. Men jag vet inte om en sådan app.

Svar

De lade äntligen till ett avsnitt för att svara på denna exakta fråga: https://developer.android.com/guide/topics/media-apps/mediabuttons.html

Svar

Kanske hjälper det lite:

Samsung S5 -> Bluetooth-mottagare + In-ear-telefonkontakter

Jag använder Samsung S5, först med 7digital-appen för att ladda ner och spela musik. Sedan bytte jag och använde Cloudplayer. Men varje gång Clouplayer spelar och jag trycker på paus / play-knappen på min Bluetooth-mottagare kommer min 7digital-app att börja spela musik. Jag kunde inte ändra någon inställning för att ändra Bluetooth-uppspelning / paus mot Cloudplayer. Jag raderade sedan all min 7digital nedladdade musik och försökte igen. Problemet löst! Spela / pausa är på något sätt länkat till Cloudplayer nu.

Svar

Det är inte ett problem med din BT-enhet. När du parar ihop med din telefon spelar Bluetooth-headset en aktiv A2DP-ström som initierats från mobiltelefonen. Om det är någon vanlig mediaspelare på din telefon kan den reagera på alla AVRCP-kontrollkommandon som paushopp, fw osv. Nu när du spelar något på webben eller någon annan spelare som inte implementerar alla sådana kontroller över AVRCP, för BT Headset är det fortfarande en aktiv A2DP-ström som kommer. Det skickar AVRCP-kontrollmeddelanden till din telefon. Det är nu din telefon som ska dirigera dessa kommandon till respektive app i de flesta fall till den aktiva A2DP-streamingkällan eller i ditt fall vidarebefordrar din AVRCP-kommando till standardmusikspelaren.

Din det bästa är att försöka konfigurera din mobil förutsatt att källan du spelar stöder AVRCP-kontroll. Om det inte gör det i alla fall kan du inte göra någonting. Om det gör det, skulle Mobile definitivt tillåta att dessa AVRCP-kommandon hanteras av din aktiva A2DP-strömningskälla.

Svar

Den här appen skulle vara ”Media Button Router” https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *