2016-09-15 3 views
0

Ich bin ein Neuling mit iBeacon und brauche etwas Hilfe. Habe bereits nützliche Informationen aus anderen Themen gefunden, suche aber immer noch nach Antworten.Aktualisieren iBeacon Zustand

Gibt es eine Möglichkeit, eine Benachrichtigung über meinen Zustand an der Position zu erhalten, nachdem die App beendet wurde oder nachdem ich Bluetooth eingeschaltet habe? Jetzt habe ich Benachrichtigungen nur nach Zustandsänderungen bekommen.

Beispiel: Ich brauche eine Benachrichtigung, wenn ich auf "A" zeigen kann. Aber ich kam dorthin und erkannte, dass mein Bluetooth ausgeschaltet ist. Ich habe Bluetooth eingeschaltet und nichts bekommen, weil iBeacon dachte, ich wäre von Anfang an "INSIDE". Dies passiert, wenn die App nicht im Vordergrund ist (aber nicht 100% mal, manchmal iBeacon 'rescan' und sendet seinen Status erneut).

Ich muss irgendwie manuell iBeacon Zustand aktualisieren und Methoden didDetermineState oder didRangeBeacons zu arbeiten. Ich habe versucht, die Überwachung zu stoppen und zu starten, nachdem die App beendet wurde, um die Benachrichtigung zu erzwingen, scheint aber nicht zu funktionieren. Ich weiß, dass es eine Möglichkeit gibt, dieses "Refresh" nach dem Einschalten des Displays zu erhalten, aber es könnte perfekt sein, um es auch in anderen Situationen zu bekommen, wenn es nötig ist.

Antwort

0

Viele Standort- und Beacon-Ereignisse können eine App im Hintergrund aktivieren, aber werden relativ wenige Ereignisse an Apps gesendet, die über den Task-Switcher gelöscht wurden oder seit dem Start nie gestartet wurden.

Die einzigen Bluetooth-Ereignisse der Lage, eine nicht laufende App gestartet sind:

  • didEnterRegion (für CLBeaconRegions)
  • didExitRegion (für CLBeaconRegions)

Andere Veranstaltungen von Vordergrund nur empfangen/Hintergrund laufende apps:

  • didDetermi neStateForRegion
  • CoreBluetooth Geräteerkennung
  • CoreBluetooth Energiezustand ändert

Der letzte ist das Ereignis, das Sie sich interessieren, aber es wird einfach nicht zu Anwendungen gesendet werden, die nicht ausgeführt werden. Eine Alternative kann sein, sich auf andere Standortereignisse wie Signifikater Standortwechsel zu verlassen, der eine nicht laufende App startet, wenn sich der Benutzer "signifikant" bewegt (z. B. zum nächsten Mobilfunkmast). Sie können sich für diese Ereignisse registrieren und den Bluetooth-Status zu diesem Zeitpunkt prüfen. Dies ist möglicherweise das Beste, was Sie tun können.

Verwandte Themen