Hva avgjør hvilket program som fungerer med en Bluetooth AVRCP-kommando?

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:

Kommentarer

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *