2016-05-17 4 views
0

Ich habe eine App, die in BLE-Geräte integriert ist. Ich kann eine Verbindung zu einer beliebigen Anzahl von Geräten herstellen. Wenn eine Paarung von der App zum Gerät über [CBCentralManager connectPeripheral:options:] initiiert wird, wird die System-Bluetooth-Pairing-Anforderungswarnung ausgelöst, wenn keine vorherigen Paarungsinformationen gefunden werden. Das alles funktioniert großartig.Mehrere gleichzeitige Bluetooth-Kopplungsanforderungsdialoge verarbeiten

Allerdings implementiere ich eine Funktionalität, die Merkmale von mehreren Geräten gleichzeitig entdeckt, koppelt und liest. Dies funktioniert auch, wenn die Geräte zuvor gepaart wurden. Wenn dies jedoch die erste Paarung für mehrere Geräte ist, wird nur einer der Pairing-Request-Alert-Controller angezeigt. Was dies noch schwieriger macht, ist, dass ich auch keinen fehlerhaften Verbindungsfehler von CB für die anderen Geräte erhalte, die auf eine Antwort vom Paarungsdialog warten.

Gibt es eine Möglichkeit, mit Situationen umzugehen, in denen mehrere Paarungsanfragen Aufmerksamkeit erfordern? Es wäre hilfreich, wenn zumindest eine von ihnen möglich ist:

  • Die Fähigkeit, die herausragenden Paare Anforderungen abzuschließen sequentiell
  • Mitteilung gescheiterten Paarung für andere Geräte
  • des Wissen, ob ein Dialog Pairing-Anfrage wird gefeuert vor die Paarung zu initialisieren, damit ich

Antwort

0

Es sind keine APIs in CoreBluetooth einer nach dem anderen Paar, die Sie interagieren mit dem Pairing können. Haben Sie die Kontrolle über die Firmware der Peripheriegeräte, mit denen Sie koppeln möchten? Wenn dies der Fall ist, können Sie Benachrichtigungen aktivieren und Ereignisse senden, wie der Paarungsprozess abläuft. So wissen Sie in der App den aktuellen Status eines Paarungsvorgangs.

Bei einigen Beispielen können Sie anhand von Status- und Fehlercodes (Details abhängig vom BLE-Stapel in Ihrer Umgebung) feststellen, wann iOS den Paardialog anzeigt, wann der Benutzer auf Abbrechen klickt und wann die Paarung erfolgreich ist. Es wird auch möglich sein, festzustellen, wenn iOS den Paar-Dialog nicht erstellt hat.