2012-04-23 16 views
5

Pracuję nad aplikacją do śledzenia pojazdów, która polega na podstawowych usługach lokalizacyjnych. Aplikacja jest w fazie testowej, w ostatni piątek nagle przestała działać, nie było żadnych aktualizacji lokalizacji (tak jakby GPS nie działał), nawet gdy byłem w samochodzie i poruszałem się z prędkością 30 mil/godzinę lub więcej. Przez cały dzień aplikacja w ogóle nie działała.iPhone GPS - nie otrzymuje poprawnych aktualizacji lokalizacji

Sprawdziłem moje logi, nie było jednej aktualizacji lokalizacji przez cały czas. Jednak w tym czasie aplikacja Mapy działała doskonale, co sugeruje, że nie było problemów z modułem iOS/GPS/Signal. W sobotę rano (następnego dnia) ta sama aplikacja ponownie zaczęła działać bez żadnych zmian w kodzie ani ustawień, ani nie była ponownie instalowana.

Pracuję nad tą aplikacją przez ostatnie dwa miesiące i już po raz trzeci napotkałem ten problem, nie jestem w stanie śledzić głównej przyczyny, ponieważ bez jakichkolwiek zmian ta sama kompilacja zaczyna działać ponownie. Miałem ten problem na dwóch urządzeniach iPhone 3gs (ios 4.3) i iPhone 4 (ios 5.1).

Więc, czy jest ktoś, kto doświadczył trochę podobny problem, lub dowolną końcówkę na to, co może być przyczyną lub jakakolwiek wskazówka, aby śledzić takie problemy ...

... UPDATE ... Niektóre aktualizacje: Powyższe stwierdzenie w pytaniu, że "nie otrzymuję jednej aktualizacji" okazuje się błędne, ponieważ otrzymuję bardzo niewiele aktualizacji lokalizacji o najgorszej dokładności lokalizacji, takich jak +/- 200 m (z prędkością = -1 i oczywiście = - 1). Ale w mojej aplikacji wymagam co najmniej +/- 50m dokładności. Miałem kod, który odrzucił aktualizacje lokalizacji z małą dokładnością, co spowodowało, że pomyślałem, że nie ma żadnych aktualizacji.

Dzięki.

+0

Przy okazji, możesz edytować swoje pytanie. – DanSkeel

+0

Witam @ Zee, ja również stoję w obliczu tego problemu, czy możesz podzielić się tym, jak to rozwiązałeś? –

+0

@Mohittomar Nie mogłem go rozwiązać (po prostu zignorowałem, ponieważ zdarza się to bardzo rzadko). Ja również zadałem to samo pytanie Apple (jak 4 lata temu) i wciąż czekam na ich odpowiedź. – Zee

Odpowiedz

0

Czy aplikacja w jakiś sposób straciła pozwolenie od systemu operacyjnego na korzystanie ze sprzętu GPS? Czy sprawdzasz, czy usługi lokalizacyjne są włączone, sprawdzając +[CLLocationManager authorizationStatus]? Wiem, że jeśli usuniesz i ponownie zbudujesz aplikację na urządzeniu, musisz ponownie zatwierdzić dostęp do lokalizacji. Może przypadkowo zaprzeczyłeś temu, że jeden raz?

+0

Dziękuję za odpowiedź, ale nie w tym przypadku ... jak napisałem w pytaniu, aplikacja zaczyna działać bez żadnych zmian w kodzie/ustawieniach lub czymkolwiek ... co jest naprawdę dziwne. Dwa razy spotkałem się z tym problemem u mojego klienta na innym kontynencie. – Zee

0

Jeśli korzystasz z usługi "istotnej zmiany lokalizacji", może być interesujące sprawdzenie, czy miejsca, w których nie otrzymałeś żadnych aktualizacji, miały sygnał telefoniczny. Uważam, że usługa używa zmiany komórki, a nie GPS do wywołania zdarzenia.

+0

Nie, to nie tak, wszystko działa dobrze, z wyjątkiem GPS. Otrzymuję bardzo mało aktualizacji lokalizacji z najgorszą dokładnością lokalizacji, np. +/- 200m. Ale w mojej aplikacji wymagam co najmniej +/- 50m dokładności. – Zee

0

Hey można ustawić dokładność lokalizacji z

self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; 
self.locationManager.distanceFilter = 10.0f; 
self.locationManager.headingFilter = 0.5; 

Upewnij się, że zmuszają do aktualizacji lokalizacji poprzez aktualizację menedżera lokalizacji

[_locationManager startUpdatingLocation]; 

Jesteś prob stosując metodę didUpdateUserLocation dostać swoją lokalizację Jeśli nie, to użyj tej metody, aby uzyskać współrzędne lokalizacji podczas aktualizacji lokalizacji.

Upewnij się, że aplikacja nie blokuje i przejdzie w tryb bezczynności to przestanie lokalizację updates.You może zatrzymać to za pomocą następujących

[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 

Nadziei to pomóc z niektórymi swoimi niewielkimi problemami.

+0

Sądzę, że przed odpowiedzią nie przeczytałeś dokładnie tego pytania, a ponadto zakładam (może być źle), że nie rozumiesz rzeczywistego ucznia setIdleTimerDisabled, możesz znaleźć następujący tekst w dokumentach iOS. – Zee

+1

_Ważne Powinieneś ustawić tę właściwość tylko w razie potrzeby i powinieneś ją zresetować do NIE, gdy to już nie istnieje. Większość aplikacji powinna pozwolić systemowi wyłączyć ekran po upływie czasu bezczynności. Dotyczy to aplikacji audio. Przy odpowiednim korzystaniu z usług Audio Session, odtwarzanie i nagrywanie przebiegają bez przerwy, gdy ekran się wyłączy. Jedynymi aplikacjami, które powinny wyłączać licznik czasu bezczynności, są aplikacje mapujące, gry lub podobne programy o sporadycznych interakcjach z użytkownikami. – Zee

+0

Btw używałem go w aplikacji do mapowania. Zapoznaj się z błędnym pytaniem, że używasz mapy do śledzenia. – Mou

Powiązane problemy