Bakgrunn: Jeg har et A2DP / AVRCP bluetooth headset ( Nokia BH -505 ) som jeg bruker aktivt for å lytte til både podcaster og musikk. Selvfølgelig hører jeg på disse med forskjellige apper. Bluetooth-headsettet har noen «kommandoknapper» (AVRCP), relevante for lyd – spesifikt: «neste spor», «forrige spor» og «spill / pause»
For øyeblikket når jeg trykker på noen av kommandoene , en av musikkspillerne jeg har installert ( Meridian ) får alltid kommandoen – selv når den ikke er aktiv. Så når jeg klikker «spill / pause» har tenkt å stoppe en podcast på pause ( DoggCatcher ), i stedet aktiveres Meridian og begynner å spille musikk sammen med podcasten.
Begge spillerne er satt til bruker headsettet: DoggCatcher har «Bind to headset» slått på, og Meridian har «Headset Buttons» slått på. Jeg bruker for øyeblikket ikke rooted lager Android 2.2.1 på GT-S5570, men kan ha rot og oppgradering til 2.3 CyanogenMod ( eller slikt), i fremtiden.
Når jeg ignorerer detaljene, er spørsmålet mitt om dette mer generelt:
- Hvordan bestemmer Android hvilken app som får å reagere på disse kommandoene? Jeg er interessert selv i et veldig teknisk svar.
På den praktiske siden er jeg interessert i:
- Må jeg fikle med hver applikasjonsinnstilling for å bestemme hvilket program som tar kommandoene, eller er det noen generell måte å bestemme dette på?
- Er det en måte å konfigurere dette slik at applikasjonen som «s faktisk er aktiv automatisk alltid vil få prioritet? (som ble stilt delvis i et annet spørsmål )
Hvordan dette spørsmålet skiller seg fra lignende spørsmål:
-
«Slik stiller du» Spill «-knappadferd på Bluetooth-fjernkontroll» – bare praktisk, annerledes fokus, har så langt ingen svar, og Jeg er også interessert i svar som krever rooting eller tilpasset firmware (spesielt CyanogenMod).
-
Endre standardprogram for håndtering headset-kontroller – et nøyaktig problem som ble løst, men ikke på en måte som ville svare på spørsmålene mine, selv om det gir noen tips om hvordan ting fungerer.
-
Hvordan kan jeg få knappen på hodetelefonene til å styre noe annet enn lagermusikkspilleren? – delvis lignende spørsmål på praktisk side, men ikke noe fokus på å forklare hvordan det fungerer faktisk, og det eneste svaret er fokusert på den delen jeg ikke spør om (å få bare en app til å motta kommandoene).
-
hvorfor får alle lydapper apper med Bluetooth-knapphendelser på en gang – veldig like, men spør om et bestemt problem (alle av mediespillerne som fikk AVRCP-kommandoen)
Kommentarer
- Jeg klarte å finne litt god informasjon relatert til dette fra en Android-utviklerblogg – diskuterer den riktige måten at denne skal implementeres av applikasjoner i 2.2: » Tillate applikasjoner å spille fine (r) med hverandre: Håndtering av fjernkontrollknapper »
- I 2016 er dette fortsatt et problem -. – Å flytte fra iOS kan være den mest irriterende delen av android for meg så langt: /
- Relatert? android.stackexchange.com/q/218823/693
Svar
media-button-router , som allerede er nevnt i et av spørsmålene dine, prøver å finne ut hvilken app som for øyeblikket spiller musikk og for å sende AVRCP-hendelsene til den. I tillegg viser den alle installerte apper som erklærer å lytte til AVRCP-hendelser.
Hva gjør AVRCP komplisert: Noen apper, som Sonys Music Unlimited , synes ikke å erklære android.intent.action.MEDIA_BUTTON
i manifestet sitt. Av denne (eller kanskje en annen) grunn kan de ikke styres via media- knapp-ruter. Jeg vet at f.eks. Music Unlimited kan kontrolleres via AVRCP siden jeg leste den i en brukerkommentar, og jeg klarte også å få den til å kjøre en gang men dessverre er den ikke reproduserbar. Så i disse tilfellene ser det ut til at vi må vent på en appoppdatering med en ren implementering av AVRCP-hendelseshåndtering.
I følge media-button-router «s wiki «Medieknapp Håndteringen av intensjoner skjer gjennom bestilte sendinger, og hver app setter sin egen prioritet for mottak.» Så det kan være mulig å skrive en app som viser disse prioriteringene og faktisk lar deg bestemme hvilket program som skal starte. Imidlertid vet jeg ikke om en slik app.
Svar
De la til slutt et avsnitt for å svare på akkurat dette spørsmålet: https://developer.android.com/guide/topics/media-apps/mediabuttons.html
Svar
Kanskje dette vil hjelpe litt:
Samsung S5 -> Bluetooth-mottaker + In Ear-telefonplugger
Jeg bruker Samsung S5, først med 7digital-app for å laste ned og spille musikk. Så byttet jeg og brukte Cloudplayer. Men hver gang mens Clouplayer spiller og jeg trykker på pause / avspillingsknappen på Bluetooth-mottakeren, vil 7digital-appen min begynne å spille musikk. Jeg kunne ikke endre noen innstillinger for å endre Bluetooth-avspilling / pause mot Cloudplayer. Jeg slettet all min 7digital nedlastede musikk og prøvde igjen. Problem løst! Spill / pause er på en eller annen måte knyttet til Cloudplayer nå.
Svar
Det er ikke noe problem med BT-enheten din. Når det er paret med telefonen, spiller Bluetooth-hodesettet aktiv A2DP-strøm startet fra mobiltelefon. Hvis det er en vanlig mediespiller på telefonen din, kan den reagere på alle AVRCP-kontrollkommandoer som play pause skip, fw etc. Nå når du spiller noe på nettet eller en annen spiller som ikke implementerer alle slike kontroller over AVRCP, for BT Headset er det fremdeles en aktiv A2DP-strøm som kommer. Det vil sende AVRCP-kontrollmeldinger til telefonen. Det er nå telefonen din som skal dirigere disse kommandoene til den respektive appen i de fleste tilfeller til den aktive A2DP-streamingkilden, eller i ditt tilfelle videresender telefonen fremdeles AVRCP-kommandoer til standard musikkspiller.
Din det beste er å prøve å konfigurere mobilen din forutsatt at kilden du spiller støtter AVRCP-kontroll. Hvis det ikke gjør det, kan du uansett ikke gjøre noe. Hvis det gjør det, bør Mobile definitivt tillate at disse AVRCP-kommandoene håndteres av din aktive A2DP-streamingkilde.
Svar
Denne appen vil være «Media Button Router» https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr