Bluetooth -> service de l'échec de la découverte
Je suis en train d'écrire une application qui est capable de communiquer avec mon PC. J'ai utilisé le Bluetooth fonctionnalités du SDK 2.1.
Je peut trouver des appareils, obtenir leur adresse MAC, créer un RFCOMM socket, mais quand je lance la connexion, j'obtiens le message d'erreur suivant.
Service de l'échec de la découverte.
- C'est à cause de la UUID, qui n'est pas le même sur ma demande et sur mon PC?
- Comment puis-je obtenir le bon UUID sur mon PC?
Si j'écris une telle demande, est mon Nexus One le client ou le serveur?
J'ai le même problème..
OriginalL'auteur Kaiser | 2010-02-05
Vous devez vous connecter pour publier un commentaire.
OK, j'ai eu le même problème, mais je pense que je peux répondre à quelques unes de vos questions. Si votre ordinateur ouvre un SPP Port, par exemple, à l'aide de "sdptool ajouter --channel=3 SP" votre téléphone Android serait le client de l'ouverture d'un socket et la connexion avec ce socket vers le serveur (votre PC ou tout autre appareil Bluetooth, par exemple, le GPS, la souris, etc.).
Vous pouvez obtenir cette information par la lecture de l'article Bluetooth, la définition d'un client, je n'ai de cet article.
Si vous êtes à l'ouverture d'un SPP Port sur le serveur (votre PC, etc.) vous offrant un service standard et il existe un UUID affecté à ce service. Ce serait:
00001101-0000-1000-8000-00805F9B34FB
si je ne me trompe pas.Donc, je pense que nous devrions obtenir une réponse qualifiée à partir d'un développeur Android. Ou poser cette question, jeudi, au cours de l'IRC les heures de bureau.
Grâce philDev, l'UUID "00001101-0000-1000-8000-00805F9B34FB" a fonctionné pour moi aussi, l'exécution de la BluetoothChat exemple d'application avec un PC exécutant une base d'émulation de terminal.
OriginalL'auteur
Astuce: Si vous vous connectez à un périphérique Bluetooth de série de la carte, puis essayez d'utiliser le bien-connu SPP UUID 00001101-0000-1000-8000-00805F9B34FB. Toutefois, si vous vous connectez à un Android peer alors veuillez créer votre propre unique d'UUID.
Le Lien
OriginalL'auteur Dev Perfecular
Bien qu'il pourrait être votre UUID, je vous suggère aussi de vous assurez-vous que le Bluetooth MAC est exacte et majuscules.
Je vous suggère aussi l'exécution de
hcidump -X
dans un terminal sous Linux, et voir si vous pouvez voir toute circulation dans les deux sens entre votre machine Linux et par téléphone tout au long du processus.OriginalL'auteur Brad Hein
J'ai trouvé un moyen d'être sûr que l'UUID est trouvé sur le périphérique. Sur le côté client, avant
device.createRfcommSocketToServiceRecord(uuid);
ajouter:Le processus est gelé pendant 20 à 30 secondes, parce qu'Android est l'extraction des services. Mais après, si le serveur est en mode découverte (si le serveur est un téléphone Android), la connexion réussit à chaque fois!
OriginalL'auteur Yoann
J'ai eu le même problème lors de la reconnexion SPP après la première connexion.
C'est parce que
rfcomm channel=-1
dansBluetoothService.java
. J'ai ajoutéupdateDeviceServiceChannelCache()
à la fin defetchRemoteUuids()
, et puis il a travaillé!OriginalL'auteur chihying
Cette chose se produit la plupart de HTC. J'ai connu le même problème. Si vous avez branché pour la première fois avec succès, mais ne parviennent pas par la suite, suffit de redémarrer le téléphone et le service qui a échoué va redémarrer.
OriginalL'auteur AbdiT