Witam niedawno z wersją na ziarno iOS 9 GM, widziałem aktualizację lokalizacji (allowDeferredLocationUpdatesUntilTraveled: timeout :) nie jest odroczona. Otrzymuję komunikat o błędzie kCLErrorDeferredFailed - Menedżer lokalizacji nie wszedł w tryb odroczony z nieznanego powodu.iOS 9 Odroczona aktualizacja lokalizacji nie działa
Jest to spowodowane tym błędem, że nie przechodzi w tryb odroczenia, a aktualizacje lokalizacji są uruchamiane w sposób ciągły. Ten sam kod był używany w systemie iOS w wersji 8.4 i starszej. Wysysa dużą część mojego akumulatora. Czy jest coś, co musimy wyraźnie ustawić lub wspomnieć o iOS 9.Nie można znaleźć niczego z dokumentacji Apple?
-(void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations {
if (!self.deferringUpdates) {
[self.locationManager allowDeferredLocationUpdatesUntilTraveled:CLLocationDistanceMax timeout:30];
self.deferringUpdates = YES;
}
}
-(void)locationManager:(CLLocationManager *)manager
didFinishDeferredUpdatesWithError:(NSError *)error {
// Stop deferring updates
self.deferringUpdates = NO;
}
Ustawiłem również właściwość allowBackgroundLocationUpdates, ale nawet to nie pomogło.
self.locationManager.allowsBackgroundLocationUpdates=YES;
W iOS 9 i później, bez względu na cel wdrażania, należy również ustawić allowsBackgroundLocationUpdatesproperty obiektu menedżera lokalizacja na yes aby otrzymywać aktualizacje lokalizacji w tle. Domyślnie ta właściwość ma wartość NIE i powinna pozostać taka do momentu, gdy aplikacja aktywnie wymaga aktualizacji lokalizacji w tle.
Reduce Location Accuracy and Duration
Proszę dać mi znać, jakie dodatkowe muszę dokonać
Dzięki
Czy ustawiłeś dokładność na najlepszy i odległośćFiltr na zero? – androniennn