Je développe actuellement une application qui utilisera Bluetooth Low Energy (test sur le Nexus 4). Après avoir commencé avec les API BLE officielles sous Android 4.3, j'ai remarqué qu'après avoir connecté un appareil pour la première fois, je suis rarement capable de me connecter / communiquer avec cet appareil ou tout autre appareil.
En suivant le guide ici , je peux me connecter avec succès à un appareil, analyser les services et les caractéristiques et lire / écrire / recevoir des notifications sans aucun problème. Cependant, après la déconnexion et la reconnexion, je suis souvent incapable d'analyser les services / caractéristiques ou de terminer une lecture / écriture. Je ne trouve rien dans les journaux pour indiquer pourquoi cela se produit.
Une fois que cela se produit, je dois désinstaller l'application, désactiver Bluetooth et redémarrer le téléphone avant qu'il ne recommence à fonctionner.
Chaque fois qu'un appareil est déconnecté, je m'assure d'appeler close () sur l'objet BluetoothGatt et de le définir sur null. Des idées?
EDIT:
Log dumps: Pour ces journaux, j'ai rooté mon téléphone et augmenté les niveaux de trace des éléments associés dans /etc/bluetooth/bt_stack.conf
Connexion réussie - Première tentative après le redémarrage du téléphone et l'installation de l'application. Je suis capable de me connecter, de découvrir tous les services / caractéristiques et de lire / écrire.
Tentative ratée 1 - Il s'agit de la prochaine tentative après la déconnexion de la connexion réussie ci-dessus. Il semble que j'ai pu découvrir des caractéristiques, mais la première tentative de lecture a renvoyé une valeur nulle et s'est déconnectée peu de temps après.
Tentative ratée 2 - Un exemple où je ne suis même pas en mesure de découvrir les services / caractéristiques.
EDIT 2:
Le périphérique auquel j'essaie de me connecter est basé sur la puce CC2541 de TI. J'ai obtenu un TI SensorTag (également basé sur le CC2541) pour jouer et j'ai découvert que TI avait publié une application Android pour le SensorTag hier. Cependant, cette application a le même problème. J'ai testé cela sur deux autres Nexus 4 avec le même résultat: la connexion au SensorTag est réussie la première ou la deuxième fois, mais (selon les journaux) ne parvient pas à découvrir les services par la suite, provoquant toutes sortes de plantages. Je commence à me demander si c'est un problème avec cette puce spécifique?