Obecnie pracuję z urządzeniem CLLocationManager
i chcę uzyskać informacje na temat bieżącego nagłówka urządzenia. Jak dotąd wszystko działa dobrze, funkcje są zaimplementowane i teraz staram się wypolerować moją aplikację.Jak wykrywać stan przełącznika kalibracji kompasu na iOS
Istnieje przypadek rogu, jeśli użytkownik wyłączy flagę compass calibration
w ustawieniach użytkownika aktualizacje pozycji nie będą już wysyłane do mojej aplikacji. W takim przypadku chcę przekazać użytkownikowi informację zwrotną, że musi ponownie włączyć kalibrację kompasu, w przeciwnym razie moja aplikacja nie będzie działać.
Odkryłem, że w przypadku, gdy użytkownik wyłączy location services
dla mojej aplikacji, nadal otrzymam nagłówek magnetyczny. Ale jeśli ustawienie "kalibracji kompasu" zostanie zmienione przez użytkownika, nie otrzymam już żadnych aktualizacji pozycji. Ale w jaki sposób mogę zidentyfikować poprzez framework CoreLocation
, że "kalibracja kompasu" została wyłączona?
W "CLLocationManagerDelegate
" daje mi aktualizacji za pomocą metody
- (void)locationManager:(CLLocationManager*)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
. Ale stan wskazuje tylko, jeśli "usługi lokalizacyjne" są nieaktywne dla mojej aplikacji.
Próbowałem również uzyskać kilka ważnych informacji za pomocą metody
- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error
delegate
, bez powodzenia.
Czy jest coś w strukturze CoreLocation
, które może mi powiedzieć, czy flaga "kalibracji kompasu" jest włączona/wyłączona.
Czy kiedykolwiek znalazłeś odpowiedź na to pytanie? –