2011-04-18 3 views
0

J'ai le problème suivant: Lorsque mon casque est allumé avant que mon téléphone soit bluetooth, il ne se connecte pas à mon téléphone. Il ne se connectera à mon téléphone que lorsque le téléphone est bluetooth et que mon casque est allumé en second. J'ai découvert que je peux toujours me connecter à mon casque quand Bluetooth est allumé en seconde (1. cas), en allant dans le menu androïdes bluetooth où mes appareils jumelés sont répertoriés et sélectionnez mon casque (bien que mon casque est répertorié comme 'connecté') . Cela connectera mon casque et mon téléphone aussi. Ce que je veux maintenant faire est d'effectuer la deuxième façon de se connecter à mon casque, lorsque mon téléphone bluetooth est réglé en second lieu, par programmation. Je veux utiliser Android version 2.0 (API niveau 5), donc j'ai essayé BluetoothDevice.createRfcommSocketToServiceRecord et appelé connect() sur mon socket. Mais je reçois toujours une exception "Connexion refusée" ou "Échec de la découverte du service". J'ai utilisé de nombreux UUID que je pensais être le bon et avoir quelque chose à voir avec un casque.Connexion au casque Bluetooth en android

Répondre

3

Vous ne pouvez pas faire appel à l'API RFCOMM pour vous connecter au casque. Il est destiné à se connecter au profil SPP, le casque utilisera les profils HS/HFP. L'utilisation d'UUID differnt sur les API de RFCOMM ne résoudra pas le problème.

Fondamentalement cette connexion profil de niveau casque est réalisé en interne par Android (et il n'y a pas d'accès au niveau applicatif pour établir des connexions) Les applications ne peuvent obtenir l'état des conenctions - voir la BluetoothHeadset Classe

le comportement actuel est correct comportement recommandé, c'est-à-dire que le casque doit se connecter au téléphone, le téléphone doit donc être allumé avant de mettre le casque sous tension. Il est recommandé en tant que tel pour une bonne expérience utilisateur et la prévisibilité, si les deux périphériques essayent de se connecter les uns aux autres de manière aléatoire, il ne sera pas connecté.

+0

Fondamentalement, cette connexion de profil de niveau casque est faite en interne par Android (et il n'y a pas d'accès au niveau de l'application pour établir des connexions). mais dans mon cas quand je suis dans un appel sip, appel gsm répondu et terminé, la plate-forme ne parvient pas à se reconnecter quand je dis startbtsco(). de journaux adb j'ai vu bluetooth socket exception.any sol? – Meher

+0

Bien expliqué, merci. Bien que je ne suis pas d'accord que ce comportement mis en œuvre est juste en général. Une raison a été donnée dans le commentaire ci-dessus, une autre est, que vous pourriez avoir un kit de voiture HFP (qui est allumé avec la voiture) et vous pourriez quitter la gamme BT et revenir à portée - il n'y aura pas de reconnexion par Android ni du kit de voiture. Je pense que la mise en œuvre d'Android est trop théorique ... – Schlangi

Questions connexes