2013-01-02 13 views
5

używam czujnik Rdzeń Motion fuzję dostać zorientowany północ aktualizacje ruchu:Co oznacza błąd Core Motion 102?

[motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical toQueue:motionQueue withHandler:motionHandler] 

w bardzo rzadkich przypadkach, może być powielany jedynie w wybranych urządzeniach klienta (iPhone 4S z systemem iOS 6.0.2) Otrzymuję ten błąd w Polecenie ruchu:

Error Domain=CMErrorDomain Code=102 "The operation couldn’t be completed. (CMErrorDomain error 102.) 

Wygląda na to, że po tym nie otrzymuję żadnych poprawnych aktualizacji urządzenia DeviceMotion. Czy ktokolwiek wie, co oznacza ten błąd 102? Nie mogę znaleźć niczego w dokumentacji.

Odpowiedz

7

Jak słusznie zauważył Krysznabhadra, ten kod błędu oznacza CMErrorTrueNorthNotAvailable. Opis ("Prawdziwa północ nie jest dostępna na tym urządzeniu, co zwykle oznacza, że ​​lokalizacja urządzenia nie jest jeszcze dostępna.") Niestety nie daje żadnej wskazówki, jak rozwiązać problem, więc chciałbym opisać moje wyniki, gdy występuje błąd.

Występuje na małym (garstka z wielu tysięcy) ułamku urządzeń z systemem iOS 6.0+, gdy używa się CMAttitudeReferenceFrameXTrueNorthZVertical (CMAttitudeReferenceFrameXMagneticNorthZVertical jest OK). Pomimo opisu błędu, lokalizacja rdzenia działa poprawnie. Na zagrożonych urządzeniach błąd uruchamia się w 100% przypadków i całkowicie blokuje aktualizacje Core Motion. -[CMMotionManager deviceMotion] zawsze zwraca nil.

Resetowanie ustawień systemu iOS rozwiązuje problem.

Zalogowałem rdar://12952327 z dodatkowymi szczegółami.

Aktualizacja: Ten błąd występuje, jeśli kalibracja kompasu jest wyłączony w sekcji Prywatność/Usługi Lokalizacja/systemowych.

+1

Błąd jest bardzo prawdopodobny z powodu tego, co Ortwin zapisuje w ** aktualizacji **: kalibracja kompasu jest wyłączona; dzięki za odkrycie, że Ortwin! Zauważ także, że nawet gdy wszystko jest w porządku, normalnym jest, że otrzymujesz ten błąd co najmniej raz, zanim pojawią się prawdziwe próbki. – fishinear

0

102 jest CMErrorTrueNorthNotAvailable. Domyślam się, że twoje urządzenie ma problemy z określeniem kierunku północnego czy coś takiego.

3

Od documentation

typedef enum { 
    CMErrorNULL = 100, 
    CMErrorDeviceRequiresMovement, 
    CMErrorTrueNorthNotAvailable 
} CMError; 

Wydaje error 102 jest CMErrorTrueNorthNotAvailable, a jej opis jest

CMErrorTrueNorthNotAvailable

Wydaje się niewiele informacji dotyczących tego, co jest tego przyczyną błąd. Może to być dowolny problem sprzętowy związany z urządzeniem.

+0

Dzięki, że mi jakoś brakowało w dokumentacji. Dokumenty również stwierdzają: "Zwykle oznacza to, że lokalizacja urządzenia nie jest jeszcze dostępna." Dziwne, ponieważ lokalizacja rdzenia wydaje się działać. –

0

Dostałem ten błąd i gdy próbowałem znaleźć rozwiązanie, najwyraźniej moje usługi lokalizacyjne w moim urządzeniu są wyłączone, po włączeniu zadziałało.

2

Upewnij się również, że jest włączona. Po włączeniu tej opcji nie napotkałem już problemu 102 podczas korzystania z xTrueNorthZVertical.

Ustawienia> Prywatność> Usługi lokalizacyjne> Usługi systemowe> Kompas Kalibracja

iOS 11 System Services