Mi aplicación transmite música y quiero poder pausar/reproducir/saltar desde cualquier dispositivo Bluetooth que pueda admitir estos botones (automóvil, auriculares, etc.). Cuando se conecta a través del bluetooth de un automóvil, el audio se transmite automáticamente, pero los botones de control no afectan la transmisión de audio de mi aplicación. En su lugar, abre el reproductor multimedia predeterminado. ¿Cómo enruto estos botones para afectar mi aplicación?Controles de audio Bluetooth en Android
Respuesta
¿Ha registrado BroadcastReceiver
en su aplicación para escuchar eventos MEDIA_BUTTON
usando AudioManager.registerMediaButtonEventReceiver()
?
Después de registrarse, los eventos del botón se pueden manejar procesando el objeto KeyEvent
adjunto en los extras como EXTRA_KEY_EVENT
. Por ejemplo:
@Override
public void onReceive(Context context, Intent intent) {
final KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event.getAction() != KeyEvent.ACTION_DOWN) return;
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_MEDIA_STOP:
// stop music
break;
case KeyEvent.KEYCODE_HEADSETHOOK:
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
// pause music
break;
case KeyEvent.KEYCODE_MEDIA_NEXT:
// next track
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
// previous track
break;
}
}
Este Android Developer blog post también tienen algo de información sobre el tema agradable.
Vi los eventos 'MEDIA_BUTTON' entrar en el registro, por lo que parece prometedor. Lo intentaré mañana. –
En relación con la accepted answer, tenga en cuenta que uno de los códigos de tecla ha cambiado en Ice Cream Sandwich:
El código clave que se pasa para reproducir/pausar la intención ha cambiado en ICS. Ver este http://code.google.com/p/media-button-router/issues/detail?id=10#c5
El código clave que había sido enviado antes de la ICS fue KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE. Ahora hay dos códigos de tecla separados para reproducción y pausa (126 y 127).
Está enviando KEYCODE_MEDIA_PLAY (126) y KEYCODE_MEDIA_PAUSE (127).
- 1. Enrutamiento de audio a auriculares Bluetooth (no A2DP) en Android
- 2. HTML5 Bluetooth y audio
- 3. Android 2.1 Detectar conexión/desconexión de audio Bluetooth
- 4. Reproducción de audio con controles en iOS
- 5. Programación Bluetooth en Android
- 6. Usando Bluetooth en Android Emulator
- 7. ¿Activar Bluetooth SPP en Android?
- 8. Soporte Bluetooth en Android Emulator
- 9. Arduino + módulo Bluetooth + Android
- 10. Android puerto COM Bluetooth
- 11. Android Bluetooth Ejemplo
- 12. Android Bluetooth enviando archivo
- 13. Bluetooth file transfer Android
- 14. Android 2.1: Cifrado Bluetooth
- 15. ADB sobre Bluetooth Android
- 16. Error de conexión Bluetooth Android
- 17. Android Bluetooth problema de conexión
- 18. Edición de audio en Android
- 19. modo de detección Desactivar Bluetooth en Android
- 20. Detección de dispositivo Bluetooth en Android - startDiscovery()
- 21. android, filtros de audio
- 22. Android Bluetooth IOException: conexión rechazada
- 23. ¿Enviar archivo usando Android bluetooth?
- 24. cómo pasar el audio del iPhone a los auriculares bluetooth
- 25. Android Bluetooth logging llenando logcat
- 26. porting pulse audio en Android
- 27. Html Audio en Android Webview
- 28. Html 5 controles personalizados de etiqueta de audio?
- 29. Hacer Bluetooth en Android 2.1 detectable indefinidamente
- 30. Admite un nuevo dispositivo Bluetooth en Android
Hola, ¿Puede compartir código de ejemplo para este mismo? –