2016-05-04 14 views
0

Mein Projekt besteht darin, einen iBeacon für jedes Zimmer eines Hauses zu haben. Wenn der Benutzer im Haus einsteigt, führt meine App einen Scan-Prozess durch, um zu erkennen, was iBeacon in Echtzeit sieht (UUID, Major und Minor) und was iBeacon das stärkste RSSI-Signal hat. Wenn das stärkste Signal 10 Sekunden lang gleich ist, weiß meine App, in welchem ​​Raum der Benutzer ist und zeigt es als Benachrichtigung an.Aufwachen einer getöteten App mit didEnterRegion und dann nach iBeacon scannen

Ich muss diesen Prozess im Hintergrundmodus ausführen, auch wenn das iPhone gesperrt ist oder die App getötet wird.

Mit didEnterRegion kann ich meine App für ein paar Sekunden aufwecken, um eine Aktion auszuführen. jedoch mein Scan-Prozess (die ich oben beschrieben) muss mehr als einige Sekunden, aber weniger als 3 Minuten < mit Scan-Intervall von 1 Sekunde oder 2 Sekunden

Is- (Zeit Benutzer in einen Raum und bleiben gehen) halten werden es eine Möglichkeit, was ich mit CoreBluetooth Scan durchführen möchte? CoreLocation kann mir kein RSSI-Signal geben, um einen Filterprozess durchzuführen, stimmt das?

Vielen Dank,

Greg

Antwort

0

Sie können genau das tun, was Sie mit CoreBluetooth wollen zugleich die Überwachung bis hin durch Einschalten. Auf diese Weise erhalten Sie für jedes sichtbare Signal einmal pro Sekunde einen RSSI-Wert von bis zu 3 Minuten nach der ersten Erkennung. Sehen Sie hier für weitere Details:

http://developer.radiusnetworks.com/2014/11/13/extending-background-ranging-on-ios.html

CoreBluetooth wird dir nicht helfen, weil es Sie nicht lassen erkennen iBeacons - Apple-Blöcke diese Nutzung.

+0

"CoreBluetooth wird Ihnen nicht helfen" Sprechen Sie über CoreLocatlion? – user2287979

+0

Kann nach 3 Minuten Überwachung noch 3 Minuten mehr gedreht werden? – user2287979

+0

Nein, ich meine CoreBluetooth kann keine iBeacon-Werbung erkennen. Nur CoreLocation kann auf iOS. Und nach drei Minuten im Hintergrund können Sie es erst wieder einschalten, wenn eines der folgenden Ereignisse eintritt: (1) Ihre App wird in den Vordergrund gebracht, (2) Sie erhalten einen Überwachungseintrag-Rückruf für eine CLBeaconRegion (3) einen Überwachungsexit-Rückruf für eine CLBeaconRegion abrufen. – davidgyoung