La communication entre iOS et Android avec Bluetooth LE

J'ai une application développée à l'aide de CoreBluetooth pour communiquer entre un iPad (centrale) et iPhone (périphérique). J'ai un service qui a deux caractéristiques. J'ai une Nexus 7 en cours d'exécution la plus récente d'Android 4.3 avec BTLE de soutien. Android est un peu tard pour sauter sur la BTLE train en marche, mais il semble qu'ils approchent d'elle, de la même manière iOS fait, d'où d'abord ils prennent uniquement en charge agissant comme un central à la périphérie de la mode à venir dans une version ultérieure. Je peux charger l'échantillon Android BTLE application et accédez à proximité des périphériques. Avec mon iPhone la publicité comme un périphérique je peux voir la valeur de CBAdvertisementDataLocalNameKey dans la liste des périphériques à proximité sur le côté Android. Je peux me connecter à l'iPhone et le symbole Bluetooth passe du gris clair au noir quand la connexion est faite. La connexion dure toujours exactement 10 secondes puis se déconnecte. Sur Android, je suis censé voir une liste des services disponibles et des caractéristiques apparaissent immédiatement lors de la connexion. J'ai prouvé le code Android est réglé correctement, parce que je peux connnect à la TI CC2541DK-CAPTEUR de matériel que j'ai et de tous les services et les caractéristiques sont inscrites sur se connecter à elle.

J'ai passé les derniers jours de résoudre le problème, sans succès. Le problème est que je ne peut pas déterminer le périphérique a rencontré une erreur et ainsi à l'origine de la déconnexion. Il n'y a pas de rappels de CBPeripheralManagerDelegate au cours de la phase de connexion ou de services phase de découverte, donc je n'ai aucune idée à quel point une erreur se produit (si l'erreur est sur l'iOS côté). Sur le côté Android, une méthode est appelée pour initier la découverte de service, toutefois, leur rappel "onServicesDiscovered" n'est jamais appelé, ce qui laisse perplexe. Est-il possible que je peux creuser dans les entrailles de la BTLE de la communication sur l'iOS côté pour voir ce qu'il se passe et de déterminer ce que l'erreur est de prendre la place?

  • Vous utilisez le dernier iOS, droit?
  • Oui
  • Vous devez acheter un BLE dongle et l'utilisation de TI est un renifleur de paquets solution: ti.com/tool/packet-sniffer Ce que vous mentionnez semble bizarre. Aussi, essayez cette application: itunes.apple.com/tr/app/ble-utility/id606210918?mt=8 Il est facile de simuler des services sur le i* appareil. Si cela réussit, alors le problème est probablement dans votre code. Si cela échoue, au plus profond de l'inspection est nécessaire.
  • J'ai téléchargé le BLE app Utilitaire ainsi que LightBlue, les deux applications ont vécu les mêmes résultats que mon appli personnalisée. J'ai trouvé un autre fil qui relie ici: code.google.com/p/android/issues/..., Il semble que ce pourrait être un faible niveau de mise en œuvre de bug sur le côté Android, mais il doit encore être confirmé.
  • C'est très probable. Ils ont déployé tout à l'heure et a commencé à partir de rien. Il ya certainement des questions. Malheureusement, Google semble plus ou moins ignorer BLE. Ils n'ont même pas passer beaucoup de temps à Java-izing l'API. Tenir ce post à jour. Je pense que vous allez envoyer la réponse bientôt. 🙂
  • Va faire! Il vous aidera si les gens vont et "star" de cette question à l'code.google.com site. J'espère que cela est résolu dans la prochaine version d'Android 4.3, bien sûr, j'aimerais obtenir iOS et Android à discuter!
  • Salut tout le monde. Je suis le développeur qui a signalé l'isse que @frederick liés. Je pense que allprog dit la vérité. De toute façon je vous donner les gars une mise à jour. Il y a un autre problème en rapport à PSBA page qui a été détenue par une Android guy. La question est la même d'une mine. Donc espérons qu'ils obtiennent leurs mains sur! C'est la question du lien:code.google.com/p/android/issues/detail?id=58896 Gardez un oeil sur elle!
  • J'ai rencontré le même problème, le Nexus 4 sur 4.3 connexion à l'iPhone 5, agissant en tant que périphérique à l'aide de LightBlue. Peut se connecter mais la découverte de périphériques jamais finie et la débrancher. Mis à jour le Nexus 4 à 4,4 (numéro de Build KRT16S) et de la connexion et de la découverte de services. A été en mesure de lire et d'écrire des caractéristiques.

InformationsquelleAutor afrederick | 2013-08-23