2012-12-29 8 views
6

Ich habe Probleme herauszufinden, wie Bluetooth LE-Peripheriegerätewerbung empfangen wird, während meine App im Hintergrund ausgeführt wird. Das heißt, wenn meine App im Hintergrund ist, erreicht sie niemals die didDiscoverPeripheral() -Methode - wo die Werbung liegt. Weiß jemand, wie ich meine App so konfigurieren muss, dass ich Bluetooth LE-Werbung bekommen kann, während meine App in der App ist Hintergrund? Kann dies mit einer Thread-Abfrage geschehen, während meine App im Hintergrund ist? Hinweis: Ich möchte Werbung von allen BLE-Geräten erhalten, nicht eine definierte Anzahl von BLE-Geräten.Verwenden von Core Bluetooth zum Abrufen von Bluetooth LE-Peripherieanzeigen im Hintergrund

Schätzen Sie die Hilfe,

Casey

Antwort

7

ich das von meiner app tue.

im Hintergrund-Modus CoreBluetooth soll bis zu 55-mal langsamer als das Werbe-Intervall des Peripheriegeräts sein. Um es zu beschleunigen programmierte ich das Peripheriegerät, um alle 20ms für die ersten 30s zu werben.

Auch müssen Sie "Erfordert Hintergrundmodus" mit "App kommuniziert mit CoreBluetooth" in Ihrem Projekt Ziele -> Info definieren.

Es dauert eine Weile, bis die App Peripheriegeräte im Hintergrundmodus findet.

+1

Ich schätze Ihre Hilfe. Ich werde das ausprobieren, sobald ich nach Hause komme und Sie wissen lassen, ob es funktioniert. Um sicherzustellen, dass Sie verstehen, erreicht Ihre App die Methode didDiscoverPeripheral() korrekt? Im Gegenzug ermöglicht es Ihrer App, die Peripherals-Werbung zu analysieren. – CaseyG

+0

Hmm, ich habe es immer noch nicht geschafft, es zum Laufen zu bringen. Ich habe mein Werbungsintervall auf 20ms umgestellt, wie Sie es angemerkt haben. Ich denke, mein Problem könnte sein, dass ich einen uneingeschränkten Scan verwende (zB: scanForPeripherals: nil options: options) und keinen eingeschränkten Scan. iOS kann uneingeschränkte Scans abbrechen, wenn Ihre App in den Hintergrund tritt, die jemand [hier] angegeben hat (http://stackoverflow.com/questions/9896562/what-exactly-can-bluetooth-applications-do-whilst-in-the-background) . Verwenden Sie einen uneingeschränkten Scan oder eingeschränkt? Ich möchte eine uneingeschränkte für meine App verwenden - wenn es möglich ist. Danke für Ihre Hilfe. – CaseyG

+0

Ok, ich habe es funktioniert. Sie müssen einen eingeschränkten Scan verwenden, und Sie müssen Ihr Intervall um 20ms einstellen, wie Henrik erwähnt. Vielen Dank. – CaseyG

Verwandte Themen