2010-11-15 20 views
0

Je suis en train de développer une application Android pour le Droid Incredible. Quand je branche mon casque, une icône apparaît sur la barre d'état, donc je présume que le téléphone doit savoir qu'un casque est présent. Mon code produit des bips en réponse à diverses entrées de l'utilisateur, mais j'ai découvert aujourd'hui que c'est une idée vraiment MAUVAISE quand l'utilisateur porte des écouteurs. Ow.Droid Incredible Headphones Detection

Quelqu'un at-il des suggestions pour savoir comment je peux détecter la présence de casques par programmation, dans Android ??

Merci, R.

Répondre

3

Je trouve la classe AudioManager sur le site de développeur, il semble avoir une méthode utile pour cela, mais je l'ai pas testé:

AudioManager am = getSystemService(Context.AUDIO_SERVICE); 
bool headsetEnabled = am.isWiredHeadsetOn(); 
+0

Cela ressemble à un plus cool, simple au code. Merci, je vais le tester demain quand ma brane aura repoussé! Je suppose que j'ai encore besoin de faire un récepteur de diffusion (Eek!) Si je veux attraper l'activité de connexion de casque en temps réel, mais cela semble être une "solution à 80%" parfaite. – Rich

+0

Oui, si vous en avez besoin comme réglage en temps réel, ce n'est probablement pas le meilleur pour vous. Avant de créer un récepteur de diffusion (je n'en ai même pas encore utilisé un), vous pourriez simplement déclarer AudioManager comme une variable de classe, et juste préfacer votre code sonore avec 'if (! Am.isWiredHeadsetOn()) {/ * bip * /} '. – kcoppock

+0

Etrangement, K, (et je ne vous blâme pas) isWiredHeadsetOn() ne semble pas fonctionner du tout. Mon code n'a pas non plus défini le niveau de volume au démarrage. Il se peut que je mélange des pommes et des oranges (ou AudioManagers et MediaPlayers, pour être précis), cependant. – Rich