J'ai essayé d'utiliser un changement de position significatif lorsque l'application est totalement fermée, mais cela ne donne pas les résultats escomptés.iOS Détection de changement de position significative lorsque l'application est fermée
Mon application est censée détecter quand un voyage est démarré en voiture. Pour cela, je m'inscris pour un suivi important des changements de localisation, donc l'application devrait être lancée par iOS une fois qu'un changement significatif a lieu.
Sur simulateur, je simule une conduite sur route, et cela fonctionne totalement bien. Cependant, sur de vrais appareils, l'application est lancée après un déplacement de 5 à 10 km à très grande vitesse.
J'ai trouvé en magasin d'autres applications qui réussissent à effectuer cela, donc je me demande quelle partie de mon implémentation est incorrecte.
J'ai activé le mode d'arrière-plan de localisation à info plist. Voici le code que j'utilise pour lancer des mises à jour de localisation significatives:
self.significantLocationManager = [[CLLocationManager alloc] init];
self.significantLocationManager.delegate = self;
if ([self.significantLocationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
self.significantLocationManager.allowsBackgroundLocationUpdates = YES;
}
[self.significantLocationManager startMonitoringSignificantLocationChanges];
EDIT: Je l'ai déjà demandé et donné mon autorisation d'application « Toujours » utiliser les services de localisation. L'application utilise déjà l'emplacement en avant-plan, en arrière-plan et tout en étant terminé (mais il faut BEAUCOUP de temps pour lancer à partir de l'état terminé).
C'est déjà le cas. J'ai mis à jour la question. Merci. –