2017-01-02 2 views
2

Ich versuche, mit einem Slave zu verbinden, der automatisch fragt (PIN), die Fragen sind, wie kann ich feststellen, ob die Bindung aufgetreten ist und ob es erfolgreich war?BLE Bonding Callback in iOS

Ich kann keine Rückrufe im Zusammenhang damit in der Dokumentation finden.

Vielen Dank im Voraus.

Antwort

0

hatten wir Anfang dieses Jahres ein ähnliches Problem mit Hardware, die mit Android und iOS verbinden soll. Nehmen Sie dies nicht als Antwort auf Ihr Problem, sondern als Erfahrungsaustausch.

Wenn Sie auch Android unterstützen möchten und Kontakt zu den Firmware-Entwicklern der BLE-Hardware haben, würde ich Sie bitten, den BLE-Bonded-Ansatz nicht zu verwenden, da wir unter Android Probleme damit hatten. Android-Geräte verwenden eine breite Palette von verschiedenen Bluetooth-Chips und diese verwenden unterschiedliche Ansätze für die Bindung. Wenn es Ihnen nichts ausmacht Android, hier ist, wie Sie es zumindest für iOS funktionieren könnte:

Sie können Merkmale auf iOS lesen, obwohl Sie den Bonding-Prozess noch nicht abgeschlossen haben. Was Sie tun können, ist für eine Benachrichtigung/Hinweis auf eine bestimmte Eigenschaft registrieren und von der Bluetooth-Peripherie benachrichtigt werden, wenn die Bindung erfolgreich war.

Wenn Sie keine Benachrichtigung oder Angabe Merkmal vorhanden und keine Kontrolle über die Peripheriegeräte-Software erhalten, hier ist eine alternative Lösung, wie man zumindest, ob der Bonding-Prozess gearbeitet wissen konnte oder nicht: Versuchen Sie ein verschlüsseltes Merkmal auf der Bluetooth-Lesen peripher. Unter iOS sollte dies nicht möglich sein, wenn Sie nicht verbunden sind. Sie könnten auch versuchen, ein Merkmal zu schreiben (aber wenn ich mich recht erinnere, sollten Sie in der Lage sein zu tun, wenn das Merkmal nicht gesichert wurde).

Das sind die Erfahrungen, die wir in diesem Jahr gemacht haben Yoav, viel Glück mit dem Bluetooth-Protokoll. Der Weg zum Erfolg scheint ziemlich lang zu sein, aber am Ende wirst du froh sein, dass du deinen Weg gegangen bist :-)

+0

Danke, ich weiß es zu schätzen. Ich habe keine Kontrolle über den Code der BLE-Geräte, und ich habe kein Ereignis für gebundene und nicht einmal eine verschlüsselte Eigenschaft zu schreiben, weil jemand beschlossen hat, sein eigenes Sicherheitsprotokoll zu erstellen. Wir haben auch eine Android-Anwendung, also werde ich Ihren Kommentar an mein Team weitergeben. Ich denke, wir werden uns von der Bindung lösen. Es scheint jedoch komisch, dass sie sich nicht darum kümmerten, einen "peripheralDidBond" -Rückruf hinzuzufügen –

+0

@Lepidopteron, welche Probleme hatten Sie mit Android-Bonding? Die Verbindung wird auf der Host-Seite durch den Bluetooth-Stack und nicht durch den Chip selbst hergestellt. – Emil