2010-02-15 8 views
3

J'ai un service Bluetooth que j'ai programmé pour .Net sur une machine Windows et je voudrais que mon téléphone Android 2.1 s'y connecte. Le serveur écoute le même UUID que celui utilisé par Android pour se connecter. Mais la connexion échoue. Lorsque j'essaie de me connecter à des périphériques qui n'écoutent pas cet UUID, je reçois une exception avec le message "Service discovery failed", mais lorsque j'essaie de me connecter au serveur qui écoute le bon UUID, un message la boîte apparaît en disant:Interopérabilité inter-plateformes Bluetooth Bluetooth

"Il y avait un problème de couplage avec un périphérique Bluetooth."

Et je reçois une exception avec le message "Connexion expirée." Donc, il semble que le serveur et l'Android communiquent, mais il y a une sorte d'échec pendant la négociation. Je sais que l'Android exige que le serveur est couplé avec le téléphone et crypte également le canal de communication. Est-ce que quelqu'un sait quelles spécifications sont utilisées pour le faire? J'aimerais que mon serveur réponde correctement à la tentative de connexion.

Merci!

Répondre

1

J'ai compris ce qui n'allait pas. Le problème est que vous devez coupler l'appareil distant avec l'Android avant d'essayer d'établir la connexion, car la boîte de dialogue d'association ne fonctionne pas toujours. Je ne suis pas sûr si le bogue est du côté d'Android ou du côté de l'autre appareil, mais on ne m'a jamais montré la boîte de dialogue qui demande le code d'authentification ou qui affiche le code d'authentification sur l'un ou l'autre appareil. Donc, il semble qu'il y ait des problèmes de compatibilité. Mais si vous jumelez les appareils auparavant, la connexion fonctionne.

1

Vous avez raison. J'ai le même problème ici en essayant de me connecter à un périphérique RS232 avec un exemple de programme BluetoothChat.

1- Si non lié, je reçois deux erreurs consécutives:

03-03 13:38:20.020: ERROR/BluetoothService.cpp(2077): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) // Probably because we're calling cancelDiscovery() as a "security" (it's already been cancelled at some point beforehand) 
03-03 13:38:20.040: ERROR/BluetoothEventLoop.cpp(2077): onCreateDeviceResult: D-Bus error: org.bluez.Error.AlreadyExists (Device already exists) // This I don't understand 

2- Une fois lié par les paramètres Bluetooth, pas de problème. La connexion est parfaitement faite et le programme fonctionne.

J'ai essayé de vérifier la source Android par moi-même mais, étant donné que je suis un débutant, c'est un peu difficile. Si un gars expérimenté pouvait s'en sortir, ce serait génial.

1

Pour répondre à Tomas - Le profil SPP (Serial Port Profile) est cassé sur plusieurs modèles de HTC Android, même les versions 2.1, mais il n'est pas cohérent entre les modèles.

HTC Desire - Ne fonctionne pas.
HTC Legend - Mauvais, mais fonctionne pendant un certain temps? HTC Hero avec ROM personnalisées - Certains fonctionnent bien, d'autres pas du tout et d'autres mal quand vous faites du son en même temps.

0

Toutes les réponses précédentes sont sur la marque; essentiellement, l'appariement est nécessaire avant de se connecter. Cependant, je recevais l'erreur même après l'appariement. (J'avais d'abord essayé de me connecter sans appairer).

La solution de contournement consistait à redémarrer le téléphone une fois. Et maintenant, il est capable de se connecter à l'appareil apparié. Cela semble simple, mais j'ai passé un certain temps à le déboguer. Espérons utile à quelqu'un là-bas.