2012-11-22 9 views
14

Ich habe eine App, die eine Kombination von startMonitoringForRegion: und verwendet, um zu wissen, wo der Benutzer ist, wenn die App im Hintergrund ist. Bedeutet das, dass ich den location Wert für den UIBackgroundModes Schlüssel im Info.plist einschließen muss?UIBackgroundModes Position und signifikante Standortänderungen mit Regionsüberwachung

Dies ist ein Zitat aus der Dokumentation:

Der signifikanten Wechsel Location Service ist für Anwendungen sehr zu empfehlen, die hochgenaue Standortdaten nicht benötigen. Mit diesem Dienst werden Standortaktualisierungen nur generiert, wenn sich der Standort des Benutzers erheblich ändert. Somit ist es ideal für soziale Apps oder Apps, die dem Nutzer unkritische, standortrelevante Informationen liefern. Wenn die App bei einer Aktualisierung angehalten wird, wird sie im Hintergrund für die Aktualisierung aktiviert. Wenn die App diesen Dienst startet und dann beendet wird, startet das System die App automatisch neu, sobald ein neuer Standort verfügbar wird. Dieser Dienst ist in iOS 4 und höher verfügbar und nur auf Geräten verfügbar, die ein Mobilfunkgerät enthalten.

...

Eine App, die eine kontinuierliche Standortaktualisierungen für den Benutzer bereitstellt (auch wenn im Hintergrund) können durch die Einbeziehung der UIBackgroundModes Schlüssel (mit dem Standort-Wert) in seiner Datei Info.plist Hintergrund Ortungsdienste ermöglichen . Die Aufnahme dieses Werts in den Schlüssel UIBackgroundModes schließt nicht aus, dass das System die App aussetzt, teilt dem System jedoch mit, dass die App aktiviert werden soll, wenn neue Standortdaten bereitgestellt werden. Auf diese Weise lässt dieser Schlüssel die App im Hintergrund laufen, um Ortsaktualisierungen bei jedem Auftreten zu verarbeiten.

von Meine Interpretation ist, dass der location Wert für die UIBackgroundModes Schlüssel nur dann, wenn die App kontinuierlich Standort-Updates, wie ein Navi App benötigt erforderlich ist.

Ich habe auch versucht, die App auf einem Gerät ohne den location Wert für den Schlüssel UIBackgroundModes laufen zu lassen und es weiterhin wichtige Standortänderungen zu melden und wenn die Region eingegeben wird, von der Ausfahrt.

Auch die einzige Stelle, die UIBackgroundModes in der CLLocationManager Class Reference erwähnt wird, ist in der startUpdatingLocation Diskussion, die ich nicht verwende.

Antwort

14

Sie haben Recht mit dem Schlüssel location, der nur erforderlich ist, wenn Ihre App hochpräzise Standortaktualisierungen selbst im Hintergrund benötigt. So etwas wie Runkeeper verwendet dies, damit es Ihren Standort verfolgen kann, selbst wenn Sie eine andere App mit Multitasking verwenden. From the docs for iOS Keys: UIBackgroundModes

„Lage“: Die App bietet standortbezogene Informationen für den Benutzer und erfordert die Verwendung der Standard-Ortungsdienste (in Bezug auf den signifikante Änderung Standortdienst gegen), um diese Funktion zu implementieren.

Und

Wo Alternativen für existieren im Hintergrund ausgeführt wird, sollten diese Alternativen stattdessen verwendet werden. Apps können z. B. die Significant Location Change-Schnittstelle verwenden, um Standortereignisse zu empfangen, anstatt sich als Hintergrundstandort-App zu registrieren.

Die Bereichsüberwachung funktioniert ohne den Schlüssel location. Tatsächlich funktioniert die Bereichsüberwachung, ohne dass spezielle iOS-Schlüssel aktiviert sind.

Sie sagen, dass Sie nicht CLLocationManager verwenden, aber wenn Sie Regionsüberwachung verwenden, müssen Sie diese Klasse verwenden. Sie müssen einen Standortmanager-Delegaten für Ihre App einrichten, um die Regionsbenachrichtigungen zu erhalten.

+0

Ich meinte, ich benutze 'startUpdatingLocation' nicht. Vielen Dank für Ihre Antwort! –

+0

Ah, ich habe es, tut mir leid. –

+0

@AdamSwinden Ich verwende die Regionsüberwachung in meiner App und im Hintergrundmodus für Standortaktualisierungen. Wenn ich also den Hintergrundmodus verwenden muss, muss ich dies dem Reviewcenter mitteilen. –

-1

Ja, Sie müssen den Standortschlüssel in den Backround-Modi in Info.plist hinzufügen, wenn Sie einen wichtigen Standortwechseldienst (startMonitoringSignificantLocationChanges) verwenden, um den Benutzerstandort im Hintergrund und im App-Kill-Status zu überwachen.

Verwandte Themen