84 votes

Comment connecter un appareil Android à un appareil iOS via BLE (Bluetooth Low Energy)

Je suis en train de faire une application qui utilise le nouveau Bluetooth à Faible Énergie de l'API d'Android. Pour cela, j'ai commencé avec le c? BLE de l'échantillon à venir avec l'API de niveau 18.

Comme j'ai lu que Android ne peut pas agir comme un Périphérique, j'ai mis le téléphone Android en mode central, la numérisation de BLE périphériques autour d'elle. À cette fin, j'ai fait quelques essais avec un Nordique Plate-forme de simulation d'un Capteur Cardiaque. Tout fonctionne de manière parfaite!

Après cela, j'ai essayer de chercher un iPhone (iOS 7 beta 4) et le mettre dans une voie Périphérique et simulation d'un capteur de fréquence Cardiaque que les précédents tests. L'application Android est en mesure de voir l'appareil et s'y connecter. Mais après que la connexion est active, les 2 appareils débranchez les uns des autres dans les 3-4 secondes. En plus de cela, quand je l'appelle discoverServices() sur Android, pas de rappel est déclenchée! Dans certains cas, l'appareil Android reçoit le "Connecté" de l'événement, même si iOS puce Bluetooth est Désactivé. C'est très étrange. Pour prouver que j'ai mis le Conseil Nordique dans le centre de mode et j'ai été correctement en mesure de se connecter à l'appareil iOS avec pas de problèmes.

Que pourrait-il être? Il y a quelques limitations sur Android ou iOS qui ne permet pas de se connecter à partir d'un Android à un iphone ou vice-versa?

Merci.

EDIT: Après quelques tests, j'ai soulevé une question sur le PSBA page. Il peut être vérifié ici

4voto

Avi Points 40

J'ai déjà vécu cela pour au moins une semaine à avoir ce même problème. J'ai déjà posé une question ici, et j'ai déjà répondu sur mon propre. Le principal problème est un Android BUG problème. C'est l'envoi d'un non autorisée de commande sur un fixe L2CAP canal.

Mais quand Android est en communication avec la normale périphérique BLE appareils, cela fonctionne assez bien. Enfait le BLE sampple fonctionne comme un charme. Le problème, c'est quand est comunicating avec un appareil iOS par exemple: Juste après la connexion est faite, ils commencent à la négociation des paramètres de connexion (cette phase ne se produit pas avec la normale BLe périphérique), et c'est quand le problème se présente. Android envoie une mauvaise commande pour iOS, iOS réponses abandon de la connexion. C'est fondamentalement la façon dont il fonctionne.

Certains problèmes ont déjà été signalée chez Google, et l'un d'entre eux ont déjà été acceptés et j'espère qu'ils vont commencer à travailler bientôt.

Malheureusement, ce que vous pouvez faire est d'attendre jusqu'à la prochaine version Android. De toute façon, je vous suggère fortement d'avoir un coup d'oeil à ma question en rapport avec tous mes documents de test si vous voulez faire un peu de lumière sur ce problème.

Voici le lien: https://code.google.com/p/android/issues/detail?id=58725

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X