2012-06-07 10 views
8

Obecnie korzystam z aktualizacji znaczących zmian lokalizacji, aby monitorować, czy użytkownik wszedł w konkretny obszar zainteresowania (moja definicja obszaru zainteresowania jest szersza, niż można określić po prostu według regionów geograficznych). Moje wymagania to, że moja aplikacja powinna być budzona okresowo, aby sprawdzić, czy użytkownik ma określony obszar (jeśli nie jest aktualnie uruchomiony).CLLocationManager - Monitorowanie regionów a znaczące zmiany lokalizacji

Moje pytanie brzmi: czy rejestrowanie się w celu aktualizacji regionu (ponieważ mam wiele regionów, które są znane z mojego obszaru zainteresowań), dostarczę mi więcej aktualizacji niż po prostu nasłuchiwanie wszystkich istotnych zmian lcoation, czy po prostu być zduplikowanymi aktualizacjami? Powodem, dla którego zadaję to pytanie, jest stwierdzenie, czy monitorowanie regionu jest po prostu filtrem istotnych aktualizacji lokalizacji (ponieważ żadne z nich nie jest udokumentowane jako zasilające GPS), czy też monitorowanie regionu może być bardziej szczegółowe (może zasila GPS, ale z większą dokładnością). W szczególności chciałbym wiedzieć, czy ktoś widział dane lub dokumentację na ten temat.

Dzięki.

+0

Należy pamiętać, że nie można "obudzić" aplikacji. Aplikacja może nadal działać w tle, aby monitorować aktualizacje lokalizacji, ale jeśli aplikacja zostanie całkowicie zamknięta, musi zostać ponownie otwarta przez użytkownika. – Christian

+0

Niestety, nie "obudź się", na przykład, ale działaj w tle, aby wyświetlić powiadomienie, jeśli to konieczne. – mike

+0

To nie prawda, obie opcje mogą być wybudzane ze stanu zakończonego, aby otrzymywać aktualizacje lokalizacji, nawet jeśli zostały zamknięte przez użytkownika. http://stackoverflow.com/questions/19850088/will-ios-region-monitoring-call-didenterregion-on-my-app-if-my-app-is-in-a-termi – SMKS

Odpowiedz

5

Monitorowanie regionu wydaje się ciągnąć z bardziej konkretnych zmian sygnału lokalizacji niż usługa znacznej zmiany lokalizacji. Mówię to, ponieważ zdefiniowałem małe regiony (o promieniu ~ 100 m), które monitorowanie regionu podnosi w tle, ale że znacząca zmiana lokalizacji nie. Należy jednak pamiętać, że te dwa zdarzenia są wyzwalane na różnych typach działań użytkownika.

Monitorowanie regionu - uruchamiane tylko na przejściach granicznych. Tak więc użytkownik musi mieć dwa zdarzenia aktualizacji lokalizacji po każdej stronie granicy. Jeśli zdefiniujesz duże regiony, a użytkownik obejrzy je wewnątrz, otrzymasz aktualizacje no.

Znacząca zmiana lokalizacji - Wydaje się, że zostanie wyzwolona w telefonach zmieniających wieże komórek, a dokumentacja Location Awareness sugeruje, że tak. Oto około great data ogólnej dokładności tych aktualizacji, które sugerują około 500 m między powiadomieniami.

+0

Cool. Dziękuję za to. Ciekawostka: z eksperymentów wynika, że ​​kiedy telefon śpi, ogranicza znaczące aktualizacje lokalizacji (do około raz na pięć-dziesięć minut), ale nie robi tego w przypadku regionów, co wydaje się wyjaśniać, dlaczego aktualizacje monitorowania regionu nie są po prostu podzbiorem znaczących zmian lokalizacji, ale oba opierają się na wieżach komórkowych, a nie na zasilaniu GPS. Zauważyłem też, że często dostaję znaczące aktualizacje dotyczące zmiany lokalizacji natychmiast po pobudzeniu telefonu, jeśli podróżowałem w czasie snu. – mike

+0

, więc mówię, że jestem poza regionem, a następnie metrem w regionie. Czy monitorowanie regionu nie działa b/c Nie przekroczyłem granicy? – shi11i

+0

Prawidłowe - do momentu wyzwolenia zdarzenia lokalizacyjnego w regionie, w którym nie zostanie wykryte przejście. Jednak pamiętaj, że lokalizacja to nie tylko GPS, przypuszczam, że komórka + Wi-Fi nadal może wykryć, że jesteś w regionie, jeśli jest dostępny w metrze. Subway poruszają się szybko, więc sugeruję większe regiony, aby nie dopuścić do przejścia. –

Powiązane problemy