Antecedentes: tengo un auricular bluetooth A2DP / AVRCP ( Nokia BH -505 ) que utilizo activamente para escuchar podcasts y música. Por supuesto, los escucho con diferentes aplicaciones. El auricular bluetooth tiene algunos botones de «comando» (AVRCP), relevantes para el audio, en concreto: «pista siguiente», «pista anterior» y «reproducción / pausa»
Actualmente, cada vez que presiono cualquiera de los comandos , uno de los reproductores de música que he instalado ( Meridian ) siempre recibe el comando, incluso cuando no está activo. Entonces, cuando hago clic en «reproducir / pausar» con la intención de pausar un podcast ( DoggCatcher ), en su lugar, Meridian se activa y comienza a reproducir música junto con el podcast.
Ambos reproductores están configurados para estar usando los auriculares: DoggCatcher tiene activada la opción «Vincular a los auriculares» y Meridian tiene activados los «Botones de los auriculares». Actualmente estoy usando Android 2.2.1 sin rootear en GT-S5570, pero es posible que esté rooteando y actualizando a 2.3 CyanogenMod ( o tal), en el futuro.
Ignorando los detalles, mi pregunta sobre esto es más general:
- ¿Cómo determina Android qué aplicación obtiene reaccionar a estos comandos? Estoy interesado incluso en una respuesta muy técnica.
En el aspecto práctico, estoy interesado en:
- ¿Tengo que jugar con la configuración de cada aplicación para determinar qué aplicación toma los comandos, o hay alguna forma general de determinar esto?
- ¿Hay alguna forma de configurar esto para que la aplicación «s realmente activa automáticamente siempre tenga la prioridad? (como se preguntó en parte en otra pregunta )
En qué se diferencia esta pregunta de otras similares:
-
«Cómo configurar el comportamiento del botón» Reproducir «en el control remoto Bluetooth» : solo es práctico, tiene un enfoque diferente, hasta ahora no tiene respuestas, y También estoy interesado en respuestas que requieran enraizamiento o firmware personalizado (especialmente CyanogenMod).
-
Cambiar la aplicación predeterminada para el manejo controles de auriculares : un problema exacto que se solucionó, pero no de una manera que respondiera a mis preguntas, aunque da algunas pistas sobre cómo funcionan las cosas.
-
¿Cómo puedo hacer que el botón de mis audífonos controle algo que no sea el reproductor de música original? : pregunta en parte similar en el aspecto práctico, pero sin centrarse en explicar cómo en realidad funciona, y la única respuesta se centra en la parte sobre la que no estoy preguntando (hacer que solo una aplicación reciba los comandos).
-
¿por qué todas las aplicaciones de sonido obtienen eventos de botón bluetooth, todas a la vez? : muy similar, pero preguntando acerca de un problema específico (todas de los reproductores multimedia que reciben el comando AVRCP)
Comentarios
- Me las arreglé para encontrar buena información relacionada con esto de un blog de desarrolladores de Android – discutiendo la forma correcta en que esto debería ser implementado por aplicaciones en 2.2: » Permitir que las aplicaciones jueguen bien (r) entre sí: Manejo de los botones del control remoto »
- En 2016 esto sigue siendo un problema -. – Pasar de iOS, esta podría ser la parte más irritante de Android para mí hasta ahora: /
- ¿Relacionado? android.stackexchange.com/q/218823/693
Respuesta
media-button-router , ya mencionado en una de sus preguntas vinculadas, intenta averiguar qué aplicación está reproduciendo música actualmente y enviarle los eventos AVRCP. Además, enumera todas las aplicaciones instaladas que declaran escuchar eventos AVRCP.
Qué hace que AVRCP sea complicado: algunas aplicaciones, como Sony «Music Unlimited , parece no declarar android.intent.action.MEDIA_BUTTON
en su manifiesto. Por esta (o tal vez alguna otra) razón, no se pueden controlar a través de los medios: botón-enrutador. Lo sé, por ejemplo Music Unlimited se puede controlar a través de AVRCP ya que lo leí en un comentario de usuario y también pude ejecutarlo una vez , pero desafortunadamente no es reproducible. Así que en esos casos parece que tenemos que espere la actualización de una aplicación con una implementación limpia del manejo de eventos AVRCP.
De acuerdo con la wiki de media-button-router «El manejo de la intención del botón de medios se realiza a través de transmisiones ordenadas, y cada aplicación establece su propia prioridad de recepción». Así que tal vez sea posible escribir una aplicación que muestre estas prioridades y, en efecto, le permite determinar qué aplicación se iniciará. Sin embargo, no conozco tal aplicación.
Respuesta
Finalmente agregaron una sección para responder esta pregunta exacta: https://developer.android.com/guide/topics/media-apps/mediabuttons.html
Respuesta
Quizás esto ayude un poco:
Samsung S5 -> Receptor Bluetooth + Enchufes para teléfono en la oreja
Estoy usando Samsung S5, primero con la aplicación 7digital para descargar y reproducir música. Luego cambié y usé Cloudplayer. Pero cada vez que Clouplayer está reproduciendo y presiono el botón de pausa / reproducción en mi receptor Bluetooth, mi aplicación 7digital comenzará a reproducir música. No pude cambiar ninguna configuración para cambiar la reproducción / pausa de bluetooth hacia Cloudplayer. Luego borré toda la música descargada de 7digital y lo intenté de nuevo. ¡Problema resuelto! Reproducir / pausar está vinculado de alguna manera a Cloudplayer ahora.
Responder
No es un problema con su dispositivo BT. Cuando se empareja con su teléfono, el auricular Bluetooth reproduce la transmisión A2DP activa iniciada desde el teléfono móvil. Si se trata de un reproductor multimedia estándar en su teléfono, puede reaccionar a todos los comandos de control AVRCP como reproducir, pausar, saltar, fw, etc. Ahora, cuando reproduce algo en la web o algún otro reproductor que no implementa todos estos controles sobre AVRCP, por BT Headset sigue siendo un flujo activo de A2DP en camino. Enviará mensajes de control AVRCP a su teléfono. Ahora es su teléfono el que se supone que debe enrutar estos comandos a la aplicación respectiva en la mayoría de los casos a la fuente de transmisión A2DP activa o, en su caso, su teléfono todavía está reenviando comandos AVRCP al reproductor de música predeterminado.
Su Lo mejor sería intentar configurar su móvil siempre que la fuente que está reproduciendo sea compatible con el control AVRCP. Si no es así, de todos modos no puede hacer nada. Si lo hace, definitivamente Mobile debería permitir que estos comandos AVRCP sean manejados por su fuente de transmisión A2DP activa.
Respuesta
Esta aplicación sería «Media Button Router» https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr