J'essaie de comprendre quelle est la bonne (nouvelle) approche pour gérer Intent.ACTION_MEDIA_BUTTON dans Froyo. Au cours des 2,2 jours précédents, nous devions enregistrer un BroadcastReceiver (soit de manière permanente, soit au moment de l'exécution) et les événements Media Button arrivaient, tant qu'aucune autre application ne les interceptait et annulait l'émission. Froyo semble supporter encore un peu ce modèle (au moins pour le casque filaire), mais il introduit également les méthodes registerMediaButtonEventReceiver et unregisterMediaButtonEventReceiver qui semblent contrôler le "focus de transport" entre les applications. Pendant mes expériences, l'utilisation de registerMediaButtonEventReceiver fait que les pressions des boutons bluetooth et filaire sont routées vers le récepteur de diffusion de l'application (l'application obtient le "focus de transport"), mais cela ressemble à un changement dans le routage audio (par exemple, en débranchant le casque), le lecteur multimédia par défaut est réinitialisé.Toutes les directives pour la gestion des commandes de transport casque et Bluetooth AVRC dans Android 2.2
Quelle est la logique derrière la mise en œuvre dans Android 2.2? Quelle est la bonne façon de gérer les commandes de transport? Devons-nous détecter le changement dans le routage audio et essayer de retrouver le focus? Ceci est un problème que tout lecteur multimédia tiers sur la plate-forme Android doit traiter, alors j'espère que quelqu'un (probablement un ingénieur Google) peut fournir des lignes directrices que nous pouvons tous suivre. Une approche standard peut rendre les contrôles des boutons du casque un peu plus prévisibles pour les utilisateurs finaux.
Stefan
Je trouve que si j'appelle registerMediaButtonEventReceiver chaque fois que je reçois l'événement ACTION_AUDIO_BECOMING_NOISY qui attire les cas où le lecteur multimédia par défaut saisissait l'enregistrement loin de mon application. J'ai aussi dû appeler abortBroadcast() pour que d'autres applications n'obtiennent pas cet événement après moi et ensuite récupérer les boutons médias après que je me sois inscrit à nouveau pour eux. – skyhigh