Geo-Fencing / startMonitoringForRegion von CLLocationManager: vs. startMonitoringForSignificantLocationChanges: vs. 10-minütige StartUpdating-Aufrufe

Ich versuche, eine App einzurichten, mit der die Standorte von Personen im Hintergrund überprüft werden können, ob sie sich an einem bestimmten Standort befinden, und ggf. ein Ping an einen Server gesendet werden kann. Wir möchten die Energie unserer Benutzer nicht entziehen, deshalb versuchen wir, die beste Lösung zu finden.

Ich habe viel gelesen und nicht viele Informationen zu diesen Methoden gefunden. Ich werde die Vor- und Nachteile durchgehen, so wie ich sie jetzt verstehe

startMonitoringForSignificantChanges

Beschreibung: Basierend auf WLAN- und Mobilfunk-Änderungen aktiviert das System die App.

Docs:

Apps können eine Benachrichtigung erwarten, sobald sich das Gerät 500 Meter oder mehr von der vorherigen Benachrichtigung entfernt befindet. Es sollte nicht häufiger als alle fünf Minuten mit Benachrichtigungen gerechnet werden. Wenn das Gerät Daten aus dem Netzwerk abrufen kann, ist es viel wahrscheinlicher, dass der Standortmanager Benachrichtigungen rechtzeitig übermittelt.

Vorteile:

Die meiste Batterie effizient

Nachteile:

Abhängig von Änderungen an WLAN / MobilfunknetzenKann nur davon ausgehen, dass dies alle 200m bis 2km aufgerufen wird (wenn nicht in bestimmten Gegenden mehr)Mehr zur GenauigkeitSomit inkonsistent und ungenau

10-minütige Startaktualisierung oder "n-minütige Aktualisierung":

Beschreibung: Dies fordert die App grundsätzlich auf, mehr Zeit zu verwenden. Wenn diese zusätzliche Zeit abläuft, ruft sie [self.locationManager startUpdating] auf, ermittelt den Speicherort und erweitert den Hintergrund-Thread um weitere 10 Minuten.

Vorteile:

KonsistentKann so genau sein, wie Sie es wollen, so konsequent, wie Sie es wollen

Nachteile:

Muss alle zehn Minuten oder weniger einen Anruf tätigen, um die App im Hintergrund laufen zu lassen (dh n darf für die Anrufe nicht größer als 10 sein)

Fragen: Wie wirkt sich das auf die Batterie aus? Tut das Aufwecken und Ausschalten des GPS der Batterie mehr weh? Ich konnte mir nicht vorstellen, dass eine kurze Standortüberprüfung im Hintergrund die Batterie so stark entlädt ... Andererseits weiß ich nicht, wie das GPS eingeschaltet und ein brauchbares Signal empfangen wird.

startMonitoringForRegion (Geo-Fencing):

Einfach ausgedrückt, Ihre App wird aufgeweckt, wenn Sie in eine vordefinierte Region eintreten. Dies ist das Kuriose von ihnen, es ist neuer und es gibt weniger Dokumentation darüber. Ich kann keine gute Beschreibung dafür finden, wie das "System" den Grenzübergang überwacht. Soweit ich weiß, handelt es sich um einen wirklich intelligenten Algorithmus, oder sie pingen ständig das GPS, wodurch es weniger effektiv wäre als die anderen Methoden, um dies zu tun.

Vorteile:

Einfache ImplementierungWird vom System verwaltet, sodass Sie keine eigenen Ad-hoc-Geozäune erfinden müssen. Triggert nur beim Überschreiten der Grenzen. Keine unnötigen Daten, die Sie im Gegenzug für einen Batterietreffer löschen müssenDaher sollte das Beste für diese Art von Dingen sein, genau, vom System verwaltet

Nachteile:

Die Leute hinterfragen seine WirksamkeitEnorme Konflikte darüber, ob es gut für die Akkulaufzeit ist oder ob es die Akkulaufzeit fürchterlich erschöpft.Wie überwacht das System dies?Grundsätzlich unbestimmtes Verhalten.

Ich denke, meine Frage läuft darauf hinaus, wie startMonitoringForRegion funktioniert: Vergleichen Sie diese Methoden, um die Position des Benutzers im Hintergrund zu testen, wenn es um Akkulaufzeit, Konsistenz und Präzision geht. Hat jemand dies gründlich getestet? Oder sie in ihrer App verwendet und zumindest ein Feedback bekommen? Wahrscheinlich liegt der Kompromiss für meine Zwecke zwischen Geo-Fencing und der 10-minütigen Aktualisierungsmethode. (Auch wenn man bedenkt, was Apple öffentlich über iOS7 gesagt hat, wird es einige Hintergrundaufgaben geben ... Ändert dies die Abwägung zwischen diesen beiden Methoden?) Hat jemand eine Vorstellung davon, wie diese beiden Methoden verglichen werden?

Vielen Dank! Wir freuen uns darauf zu sehen, ob wir den Vergleich dieser Methoden nachvollziehen können.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage