Sfondo: ho un auricolare Bluetooth A2DP / AVRCP ( Nokia BH -505 ) che utilizzo attivamente per ascoltare sia podcast che musica. Ovviamente li ascolto con diverse app. Lauricolare bluetooth ha alcuni pulsanti di “comando” (AVRCP), relativi allaudio, in particolare: “traccia successiva”, “traccia precedente” e “riproduzione / pausa”
Attualmente ogni volta che premo uno qualsiasi dei comandi , uno dei lettori musicali che ho installato ( Meridian ) riceve sempre il comando, anche quando non è attivo. Quindi quando faccio clic su “riproduci / metti in pausa” intenzionato a mettere in pausa un podcast ( DoggCatcher ), Meridian viene attivato e inizia a riprodurre musica insieme al podcast.
Entrambi i lettori sono impostati su sta utilizzando lauricolare: DoggCatcher ha “Bind to headset” attivato e Meridian ha attivato “Headset Buttons”. Attualmente sto utilizzando Android 2.2.1 senza root su GT-S5570 ma potrebbe essere il rooting e laggiornamento a 2.3 CyanogenMod ( o simili), in futuro.
Ignorando le specifiche, la mia domanda al riguardo è più generale:
- In che modo Android determina quale app deve reagire a questi comandi? Mi interessa anche una risposta molto tecnica.
Dal punto di vista pratico mi interessa:
- Devo armeggiare con le impostazioni di ciascuna applicazione per determinare quale applicazione accetta i comandi o esiste un modo generale per determinarlo?
- Cè un modo per configurare questo in modo che lapplicazione che “è effettivamente attiva ottenga automaticamente sempre la priorità? (come è stato in parte chiesto in unaltra domanda )
In che modo questa domanda differisce da domande simili:
-
“Come impostare il comportamento del pulsante” Riproduci “sul telecomando Bluetooth” – solo un obiettivo pratico e diverso, finora non ha risposte e Sono anche interessato a risposte che richiedono il rooting o un firmware personalizzato (in particolare CyanogenMod).
-
Cambia lapplicazione predefinita per la gestione controlli dellauricolare : un problema esatto che è stato risolto, ma non in modo da rispondere alle mie domande, anche se fornisce alcuni suggerimenti su come funzionano le cose.
-
Come posso fare in modo che il pulsante sulle mie cuffie controlli qualcosa di diverso dal lettore musicale di serie? – domanda in parte simile sul lato pratico, ma senza concentrarmi sulla spiegazione come funziona davvero e lunica risposta è focalizzata sulla parte che non sto chiedendo (fare in modo che solo unapp riceva i comandi).
-
perché tutte le app audio ricevono gli eventi dei pulsanti Bluetooth, tutti in una volta – molto simili, ma chiedono informazioni su un problema specifico (tutte dei lettori multimediali che ricevono il comando AVRCP)
Commenti
- Sono riuscito a trovare alcune buone informazioni relative a questo da un blog di sviluppatori Android – discutendo il modo corretto in cui questo dovrebbe essere implementato dalle applicazioni in 2.2: ” Consentire alle applicazioni di giocare bene (r) tra loro: gestione dei pulsanti del telecomando ”
- Nel 2016 questo è ancora un problema -. – Passando da iOS questa potrebbe essere la parte più irritante di Android per me finora: /
- Correlati? android.stackexchange.com/q/218823/693
Risposta
media-button-router , già menzionato in una delle tue domande collegate, cerca di capire quale app sta attualmente riproducendo musica e per inviare ad essa gli eventi AVRCP. Inoltre, elenca tutte le app installate che dichiarano di ascoltare eventi AVRCP.
Cosa rende complicato AVRCP: alcune app, come Sony “s Music Unlimited , sembra non dichiarare android.intent.action.MEDIA_BUTTON
nel file manifest. Per questo (o forse per qualche altro) motivo non possono” essere controllati tramite media- pulsante-router. So che ad es. Music Unlimited può essere controllato tramite AVRCP poiché lho letto in un commento utente e inoltre sono riuscito a farlo funzionare una volta ma sfortunatamente non è riproducibile. Quindi in quei casi sembra che dobbiamo attendere laggiornamento di unapp con unimplementazione pulita della gestione degli eventi AVRCP.
Secondo il wiki di media-button-router “ “La gestione dellintento dei pulsanti multimediali viene eseguita tramite trasmissioni ordinate e ogni app imposta la propria priorità per la ricezione.” Quindi forse potrebbe essere possibile scrivere unapp che mostri queste priorità e, in effetti, lo farebbe consentono di determinare quale applicazione verrà avviata. Tuttavia, non conosco unapplicazione del genere.
Risposta
Hanno finalmente aggiunto una sezione per rispondere esattamente a questa domanda: https://developer.android.com/guide/topics/media-apps/mediabuttons.html
Risposta
Forse questo aiuterà un po :
Samsung S5 -> Ricevitore Bluetooth + prese per telefono In Ear
Sto usando Samsung S5, prima con lapp 7digital per scaricare e riprodurre musica. Poi ho cambiato e utilizzato Cloudplayer. Ma ogni volta che Clouplayer sta riproducendo e premo il pulsante di pausa / riproduzione sul mio ricevitore Bluetooth, la mia app 7digital inizierà a riprodurre musica. Non sono riuscito a modificare alcuna impostazione per modificare la riproduzione / pausa del bluetooth verso Cloudplayer. Ho quindi cancellato tutta la mia musica scaricata da 7digital e ho riprovato. Problema risolto! La riproduzione / pausa è in qualche modo collegata a Cloudplayer ora.
Risposta
Non è un problema con il tuo dispositivo BT. Quando è accoppiato al telefono, lauricolare Bluetooth riproduce lo streaming A2DP attivo avviato dal telefono cellulare. Se si tratta di un lettore multimediale standard sul telefono, può reagire a tutti i comandi di controllo AVRCP come riproduzione, pausa, salto, ecc. Ora, quando si riproduce qualcosa sul Web o un altro lettore che non implementa tutti questi controlli su AVRCP, per BT Headset è ancora un flusso A2DP attivo in arrivo. Invierà messaggi di controllo AVRCP al telefono. Ora è il tuo telefono che dovrebbe instradare questi comandi alla rispettiva app nella maggior parte dei casi alla sorgente di streaming A2DP attiva o nel tuo caso il tuo telefono sta ancora inoltrando i comandi AVRCP al lettore musicale predefinito.
Il tuo la cosa migliore sarebbe provare a configurare il tuo cellulare a condizione che la fonte che stai riproducendo supporti il controllo AVRCP. Se non lo fa, comunque non puoi fare nulla. Se lo fa, allora sicuramente Mobile dovrebbe consentire a questi comandi AVRCP di essere gestiti dalla tua sorgente di streaming A2DP attiva.
Risposta
Questa app sarebbe “Media Button Router” https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr