10

Ich habe eine Anwendung, die Bluetooth 4.0 LE verwendet. Die Anwendung ermöglicht es dem Gerät, als zentrales und peripheres Gerät zu fungieren.CoreBluetooth Central Manager kann Peripheriegeräte im Hintergrund nicht erkennen

Ich möchte die Anwendung im Hintergrund ausgeführt werden. Ich habe die UIBackgroundModes mit "bluetooth-central" und "bluetooth-peripheral" bereits in der info.plist aufgenommen.

Ich verwende die Anwendung auf zwei verschiedenen Geräten, die Bluetooth 4.0 LE aktiviert sind.

Wenn beide Geräte im Vordergrund laufen, funktioniert alles einwandfrei und die Informationen werden in beiden Richtungen übertragen.

Wenn ein Gerät im Vordergrund ausgeführt wird und das andere im Hintergrund ausgeführt wird, kann das im Hintergrund ausgeführte Gerät zwar scannen und ankündigen, aber das andere Gerät, das im Hintergrund ausgeführt wird, nicht erkennen. Das Gerät, das im Vordergrund ausgeführt wird, kann erkennen und eine Verbindung mit dem Gerät herstellen, das im Hintergrund ausgeführt wird.

Nach dem Lesen von Apple's Core Bluetooth Programming Guide, weiß ich, dass die Verbindung zu einem anderen Gerät und die gemeinsame Nutzung von Informationen BEIDE Wege möglich ist.

Ich kann weitere Informationen auf Anfrage veröffentlichen. Vielen Dank.

Antwort

8

Wenn die Peripherie-App im Hintergrund ist, werden die beworbenen Dienste in den "Überlaufbereich" verschoben, und der Name des Peripheriegeräts wird überhaupt nicht angezeigt. Darüber hinaus wird das Ankündigungsintervall erhöht. Theoretisch sollte der iOS-BLE-Stapel diesen Fall behandeln und nach den Überlaufbereichsdaten fragen, tut dies jedoch nicht. Gleichzeitig wird auch das Scannen auf der Hintergrundumgebung verlangsamt, und außerdem erfordert es bestimmte Dienst-UUIDs zu arbeiten. (Sie können nicht im Hintergrund mit nil Dienste scannen)

Als Konsequenz Scannen für hinterlegte Geräte auf einem zentralen Hintergrund ist nicht möglich.

Entweder dies ist ein Fehler oder eine Funktion, nur Apple weiß. Öffne ein Radar und erzähle ihnen dein Problem. Je mehr wir das tun, desto besser können wir reagieren.

+0

Danke. Nachdem ich ein paar Tage lang recherchiert hatte, reichte ich eine TSI bei Apple ein. Ich werde diesen Beitrag aktualisieren, wenn ich das Problem herausgefunden habe. – tagabek

+0

TSI? Ich habe dieses Wort noch nicht gesehen. – allprog

+0

Technischer Support-Vorfall. Es ist im Grunde eine Apple-Ingenieur für eingehende Hilfe (oft Code-Level). – tagabek

Verwandte Themen