2011-08-18 4 views
1

Je cours une application multi-threads sur android et adobe air, en natif android 2 sockets bluetooth sont mis en place et quelques threads de serveur pour l'application air pour communiquer avec les prises bluetooth de l'android natif. C'est fondamentalement la programmation de douille et tout fonctionne sur un dispositif que j'ai utilisé pour le programmer.Bluetooth Android issue

L'appareil que j'avais utilisé pour développer cette application était lent, je me suis donc procuré une autre tablette à tester (android vega) et il est très rapide à communiquer mes données bluetooth comme il a la version 2.1edr. Le problème avec la tablette Advent Vega est que les flux bluetooth se déconnectent sans raison apparente par intermittence et dans la fenêtre du journal adb j'essaie juste de me connecter à l'appareil tout d'un coup quand la déconnexion se produit, je n'ai aucune mention de le crash n'importe où dans le journal, cela arrive aux deux threads connectés bluetooth en même temps, donc il doit être quelque chose à voir avec la radio bluetooth im suspect. L'autre tablette fonctionne bien mais plus lentement (pas de déconnexion). J'ai même installé une ROM 3.0 personnalisée sur le vega pour voir si c'était un problème d'os, mais le problème de déconnexion a persisté sur 3.0 ainsi.

En raison du fait qu'il n'y a aucune mention de ceci dans le journal d'adb je regarde juste fondamentalement à un écran sans aucune idée de la raison pour laquelle il se déconnecte pendant 2 jours maintenant! La seule façon d'exécuter l'application à nouveau après cette déconnexion est de redémarrer le Bluetooth sur l'appareil, mais cette déconnexion se produit à nouveau lors de la prochaine exécution. Il semble améliorer la durée pendant laquelle il continue de transmettre des données lorsque l'application est lancée pour la première fois après un redémarrage. J'ai parcouru tout le code de l'exécution() et l'arrêt() de chaque fil et il semble quitter normalement, je ferme les prises Bluetooth seulement, il semble de la recherche pas besoin de fermer l'entrée et la sortie bluetooth mais J'ai également essayé cette approche à la fermeture. Est-ce que quelqu'un peut suggérer pourquoi les deux boucles de lecture/écriture bluetooth s'arrêteraient tout à coup et se déconnecteraient? Apparemment en effectuant le journal ADB ainsi que cela dit simplement essayer de se connecter ...

Ou des suggestions sur la façon de mieux déboguer lorsque cela se produit?

Ou même ce que quelqu'un d'autre ferait dans cette situation. J'espère que quelqu'un peut vous aider, j'ai une grande application de téléphone à distance pour la communauté propriétaire de la tablette android et il dépend de ce dernier problème que j'ai été bloqué pendant 2 jours.

+0

Vous devriez vraiment montrer votre code. Bluetooth et Android peuvent être assez surprenants. J'ai rencontré des appareils qui ne pouvaient plus se connecter après un certain temps. Les raisons étaient principalement des bugs connus pour ces appareils. Après un cycle d'alimentation (non seulement désactiver/réactiver bluetooth ou même redémarrer), je pourrais à nouveau travailler avec Bluetooth. Voir ce numéro https://code.google.com/p/android/issues/detail?id=41415 Notez également qu'il existe ce méchant "utiliser la réflexion pour se connecter via RFCOMM" dans le monde entier. Ne fais pas ça. Il contourne SDP-Service-Lookup et utilise toujours un canal fixe. – hna

Répondre

0

J'ai eu des problèmes avec les déconnexions, et mis en œuvre un keepalive en envoyant une requête ping et un ping ack. Cela a bien fonctionné pour moi ...