Carlos Alan
Carlos Alan

Reputation: 27

iOS GPS Location Tracking

I am programming in Objective C on Xcode and seem to be having a problem when my app goes into the background. I have a GPS tracking app and it works fine when the user has the app running but when it goes in the background the GPS doesn't follow the user location step by step. It pauses and then when the app re-opens, it automatically finds the location but I want the GPS to be running all the time so it won't "go off road"1 like I have in the picture attached.

"GPS location goes off road

I have location updates and background fetch turned on already in background modes.

   #pragma mark - CLLocationManagerDelegate
   - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:          (NSArray *)locations
   {

if (!self.timerPause) {
    for (CLLocation *newLocation in locations) {

        NSDate *eventDate = newLocation.timestamp;

        NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];

        if (fabs(howRecent) < 10.0 && newLocation.horizontalAccuracy < 20) 

other code

     if (self.locationManager == nil) {
    self.locationManager = [[CLLocationManager alloc] init];
}
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.activityType = CLActivityTypeAutomotiveNavigation;
self.locationManager.distanceFilter = 10; // meters
if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
    [self.locationManager requestWhenInUseAuthorization];
}
[self.locationManager startUpdatingLocation];

Upvotes: 1

Views: 1518

Answers (1)

Alakh
Alakh

Reputation: 108

locationManager.allowsBackgroundLocationUpdates = YES;

Add this where you have set up the location manager. It should work :)

Upvotes: 3

Related Questions