iOS BLE Hintergrundscan

8

Ich habe Probleme zu verstehen, wie das Scannen ausgeführt wird, wenn sich eine iOS-Anwendung in bacground befindet. Ich habe eine sehr einfache Testanwendung, die nur nach Geräten sucht und die Ergebnisse an die Konsole ausgibt. Ich habe den erforderlichen Hintergrundmodi in Info.plist Bluetooth-zentral hinzugefügt, so dass es mir gut geht und ich suche nach einem Gerät mit einem bestimmten Dienst, nämlich

%Vor%

Wenn die Anwendung im Vordergrund ist, ist nur ein (oder kein) BLE-Gerät mit der Stromquelle verbunden, so dass iOS es erkennt und die Ergebnisse ziemlich häufig anzeigt. Wenn ich in den Hintergrund gehe, gibt es keine weiteren Ergebnisse des ersten Geräts, das erwartet wird, da CBCentralManagerScanOptionAllowDuplicatesKey auf NEIN gesetzt ist.

An diesem Punkt binde ich das zweite BLE-Gerät an und warte gespannt darauf, dass es in den Ergebnissen angezeigt wird. Nach 10 Minuten Wartezeit wird nichts mehr angezeigt. Die Anwendung wird nicht beendet, seit meine letzte Benachrichtigung von applicationDidEnterBackground kommt und applicationWillTerminate wurde nie aufgerufen, während ich an der Aufgabe arbeitete.

Auf eine ziemlich zufällige Art und Weise habe ich festgestellt, dass wenn meine App läuft und immer noch im Hintergrund scannt und eine andere BLE-Scan-Anwendung (Ich benutze die Excel BLExplr ) ist im Vordergrund und beginnt zu scannen, meine Anwendung empfängt schließlich Ergebnisse in der gleichen Zeit wie die Anwendung im Vordergrund. Dies ist sinnvoll, da die Werbepakete vom System verarbeitet und an Anwendungen gesendet werden, aber warum erhält meine Anwendung nichts von sich selbst?

Hat jemand ähnliche Erfahrung oder weiß, woran kann das liegen? Ich habe wahrscheinlich alle Apple-Ressourcen in Bezug auf Hintergrundinformationen und Bluetooth ohne Hinweise zu diesem Thema gelesen. Ich arbeite an iOS 4s mit iOS 5.1.1. Mein Haupt ViewController , das ein CBCentralManagerDelegate Delegat ist, sieht so aus.

%Vor%

Außer einer NavigationController -Initialisierung im Anwendungsdelegaten gibt es in der Anwendung nichts mehr.

    
mog 16.08.2013, 08:49
quelle

0 Antworten