2016-05-26 37 views
6

Ich entschuldige mich für die Redundanz dieses Themas, aber trotz all der gegebenen Antworten kann ich nicht die Möglichkeit, Genauigkeit zu erhaltenBest Standortupdates, wenn die App beendet wird. Ich möchte nicht MonitoringSignificantChange verwenden, ich möchte die bestmögliche Genauigkeit; Ich werde die App nicht im AppStore einreichen, daher sind Apple-Beschränkungen auch kein Problem.IOS Erhalten von Standortaktualisierungen, wenn App beendet wurde, ohne significantChange

Ich habe durch diese gegangen:

-Location update even when app is killed/terminated

-iOS update location even when app is terminated

- Working with location updates when app is terminated

-http://mobileoop.com/getting-location-updates-for-ios-7-and-8-when-the-app-is-killedterminatedsuspended

und viele mehr, aber es ist nicht klar, während es möglich ist, oder nicht. Ich habe momentan mein Projekt, alles funktioniert großartig mit significantChange, aber ich brauche jetzt bessere Genauigkeit.

Könnte mir jemand direkt sagen, ob es möglich ist, das beste Genauigkeits-Standort-Update zu erhalten, wenn App getötet wird?

Danke unendlich,

+0

Ja können Sie, aber Sie können es mit erheblichen Standortüberwachung zu kombinieren, um benötigen kontinuierliche Lage Updates zu erhalten; http://stackoverflow.com/questions/20187700/startupdatelocations-in-background-didupdatingtolocation-only-called-10-20-time – Paulw11

Antwort

7

Wenn Sie den folgenden Inhalt aus dem Apple-Dokument betrachten, haben Sie offensichtlich zwei Alternativen gegen die Verwendung wichtiger Standortänderungen, um eine App aus dem Hintergrund zu aktivieren. Ich habe die Dienste markiert, mit denen Sie die App neu starten können, wenn sie beendet wurde.

Mit Location Services in den Hintergrund Die meisten Standortdienste sollen verwendet werden, während die App im Vordergrund, aber einige können auch im Hintergrund laufen. In einigen Fällen können Standortereignisse sogar dazu führen, dass Ihre App erneut gestartet wird, um ein Ereignis zu verarbeiten ( ). Um die meisten Standort Dienste im Hintergrund auszuführen, müssen Sie die Standortaktualisierungen Hintergrundmodus auf der Registerkarte Funktionen Ihres Xcode-Projekts aktivieren. Für Dienste, die Ihre App starten, müssen Sie die Berechtigung "Immer" ( ) vom Benutzer anfordern.

Der Standardpositionsdienst liefert Ereignisse normalerweise, während eine App im Vordergrund ausgeführt wird. Wenn sich Ihre App im Hintergrund befindet, liefert dieser Service Ereignisse nur dann, wenn der Hintergrundmodus für Standortinformationen für die App aktiviert ist. Dieser Dienst startet iOS-Apps, die beendet wurden, nicht neu.

Der wichtiger Standortänderungsdienst liefern Ereignisse normalerweise während eine App im Vordergrund oder im Hintergrund ausgeführt wird. Für eine beendete iOS-App führt dieser Dienst ein Relaunch der App durch, um Ereignisse auszuliefern. Die Nutzung dieses Dienstes erfordert die Autorisierung "Immer" vom Benutzer .

Der Regionsüberwachungsdienst liefert Ereignisse normal, während eine App im Vordergrund oder Hintergrund ausgeführt wird. (Sie können diesen -Dienst sowohl für geographische Regionen als auch für Beacon-Regionen verwenden.) Für eine beendete iOS-App startet dieser Dienst die App neu, um Ereignisse zu liefern. Verwendung von Dieser Dienst erfordert die Autorisierung "Immer" vom Benutzer.

Beacon ranging liefert Ereignisse normal, während eine App im Vordergrund läuft, . Wenn sich Ihre App im Hintergrund befindet, liefert dieser Dienst Ereignisse nur dann, wenn der Standort-Updates-Hintergrundmodus für die App aktiviert ist und der Standard-Standortdienst ausgeführt wird. (Wenn die Eigenschaft der Region die Eigenschaft notifyEntryStateOnDisplay auf YES gesetzt ist, bewirkt das Aufwecken des Geräts , dass die App im Bereich für einige Sekunden nach Beacons sucht.) Dieser Dienst startet keine iOS-Apps, die beendet wurden. Sie können jedoch erneut gestartet werden, indem Sie die Beacons Regionen mithilfe des Regionsüberwachungsdiensts überwachen.

Der Überschriftenservice liefert Ereignisse normalerweise, während eine iOS App im Vordergrund ausgeführt wird. Wenn sich Ihre App im Hintergrund befindet, liefert dieser Dienst nur dann Ereignisse, wenn der Standortinformationen-Hintergrundmodus für die App aktiviert ist und der Standardortungsdienst ausgeführt wird. Dieser Dienst startet iOS-Apps, die beendet wurden, nicht neu.

Der Besuchsdienst liefert Ereignisse normalerweise, während eine iOS App im Vordergrund ausgeführt wird. Wenn sich Ihre App im Hintergrund befindet, liefert dieser Dienst nur dann Ereignisse, wenn der Standortinformationen-Hintergrundmodus für die App aktiviert ist und der Standardortungsdienst ausgeführt wird. Bei einer gestoppten iOS-App startet dieser Dienst die App neu, um Ereignisse zu übermitteln. Die Nutzung dieses Dienstes erfordert die Autorisierung "Immer" vom Benutzer .

Durch Aktivieren des Hintergrundmodus für Standortaktualisierungen wird sichergestellt, dass eine App im Hintergrund weiter Standortereignisse empfängt. Wenn die App in den Hintergrund verschoben wird, fügt das System der Statusleiste den Indikator location-services hinzu, damit der Benutzer weiß, dass eine Anwendung Standortdienste verwendet. Das System kann die App jederzeit noch beenden , um seinen Speicher oder andere Ressourcen zurückzufordern.

Auch aus dem doc,

Ersten die besuchten Orte In iOS bietet der Besucherdienst eine Alternative zu dem bedeutenden Standortwechsel-Service für Anwendungen, die Lage Informationen über interessante Orte benötigen, die der Benutzer besucht. Für Beispiel, wenn der Benutzer an einem Ort für einen längeren Zeitraum von Zeit ist, kann der Dienst ein Ereignis generieren, wenn der Benutzer bei diese Position und eine andere, wenn der Benutzer diesen Ort verlässt. Der Dienst ist für Apps vorgesehen, die möglicherweise bereits den wichtigen Standortänderungsdienst verwenden und eine noch niedrigere Stromart benötigen, um dies zu tun. Sie würden diesen Dienst nicht verwenden, um Navigations-Apps oder Apps zu erstellen, die auf regelmäßigen Standortaktualisierungen beruhen.

Document Link:

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/doc/uid/TP40007125-CH3-SW73

+0

Vielen Dank ... Also keine Alternativen zum Besuch Service oder der Region Überwachung. Ich habe versucht, kontinuierliche Standortaktualisierungen zu erhalten, während die App getötet wird. Aber ich verstehe, dass Apple es nur auf Ereignisse beschränkt. – scoobyDoo

3

Kontinuierliche Standortaktualisierungen zu stoppen, wenn die App beendet wird.

Geofence-Hinweise werden Ihre App neu starten, auch wenn sie nicht ausgeführt wird. Ich denke, dass ein signifikanter Standortwechsel auch deine App neu starten wird, aber ich bin mir da nicht so sicher.

Sobald Sie neu gestartet sind, können Sie die Standortaktualisierungen erneut mit der genau festgelegten Genauigkeit starten, aber ich denke, dass Sie eines dieser beiden APIs verwenden müssen, um nach dem Neustart erneut gestartet zu werden beendet.