0

My code is working for iOS 6 . but problem is in iOS7 only didStartMonitoringForRegion getting called , didEnterRegion and didEExitRegion not getting called ....

- (void)viewDidLoad
{
    [super viewDidLoad];
    m_pLocatiomManager = [[CLLocationManager alloc] init];
    m_pLocatiomManager.desiredAccuracy = kCLLocationAccuracyBest;
    m_pLocatiomManager.delegate = self;
    [m_pLocatiomManager startMonitoringSignificantLocationChanges];
    [m_pLocatiomManager startUpdatingLocation];

}  

method to add region

if ([UIDevice currentDevice].systemVersion.floatValue >= 7.0) 
{
    float rad = 200;
    CLLocationCoordinate2D startLocation;
    startLocation.latitude = 12.9667 ;
    startLocation.longitude =77.5667 ;
    CLCircularRegion * reg1 = [[CLCircularRegion alloc] initCircularRegionWithCenter:startLocation radius:rad identifier:@"location"];
    [m_pLocatiomManager startMonitoringForRegion:reg1];
}
else
{
    float rad = 200;
    CLLocationCoordinate2D startLocation;
    startLocation.latitude = 12.9667;
    startLocation.longitude = 77.5667; 
    [m_pLocatiomManager startMonitoringForRegion:[[CLRegion alloc] initCircularRegionWithCenter:startLocation radius:rad identifier:@"location"]];
}

corelocation delegates ----

-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{    
    NSLog(@"region entered %@",region.description);
}

-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
   NSLog(@"region exit  %@",region.description);
}

-(void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region
{
    NSLog(@"region monitoring stared");
}

Thanks .

Shaik Riyaz
  • 11,204
  • 7
  • 53
  • 70
  • Are you testing this on a device? – Gad Jan 27 '14 at 08:19
  • simulator by using gpx files – Shaik Riyaz Jan 27 '14 at 08:36
  • 1
    I would try to test it on a device since region monitoring uses cell towers and wifi to get a location fix. I've also had problems when testing this on the simulator. Also, if you haven't done so I suggest you implement `locationManager:monitoringDidFailForRegion:withError` just to make sure everything is working correctly. – Gad Jan 27 '14 at 08:41
  • @GadMarkovits is right, simulator behavior is unpredictable when you try to do region monitoring. I'm surprised that it works on iOS6. Second do not use that system to check version, use the one provided by Apple https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/SupportingEarlieriOS.html look at the bottom – Andrea Jan 27 '14 at 08:46

1 Answers1

-1

finally i solved this ....

- (void)viewDidLoad
{
    [super viewDidLoad];
    m_pLocatiomManager = [[CLLocationManager alloc] init];
    m_pLocatiomManager.desiredAccuracy = kCLLocationAccuracyBest;
    m_pLocatiomManager.delegate = self;
    [m_pLocatiomManager startMonitoringSignificantLocationChanges];
    [m_pLocatiomManager startUpdatingLocation];

}  

in method to add region . . .

if ([UIDevice currentDevice].systemVersion.floatValue >= 7.0) 
{
    float rad = 100;
    CLLocationCoordinate2D startLocation;
    startLocation.latitude = 12.9667 ;
    startLocation.longitude =77.5667 ;
    CLCircularRegion * reg1 = [[CLCircularRegion alloc] initWithCenter:startLocation radius:rad identifier:@"location"];
    [m_pLocatiomManager startMonitoringForRegion:reg1];
}
else
{
    float rad = 100;
    CLLocationCoordinate2D startLocation;
    startLocation.latitude = 12.9667;
    startLocation.longitude = 77.5667; 
    [m_pLocatiomManager startMonitoringForRegion:[[CLRegion alloc] initCircularRegionWithCenter:startLocation radius:rad identifier:@"location"]];
}
Shaik Riyaz
  • 11,204
  • 7
  • 53
  • 70
  • Sorry so what is different? – Daniel Jun 11 '14 at 13:55
  • @Daniel CLCircularRegion * reg1 = [[CLCircularRegion alloc] initWithCenter:startLocation radius:rad identifier:@"location"]; // creating object using "initWithCenter:radius:identifier" in second case – Shaik Riyaz Jun 11 '14 at 14:22
  • @RIYAZ can you please share the code related with SignificantLocationChanges. As I am unable to make it work on iOS7. i.e. If my app is not active, the SignificantLocationChanges doesn't work. similar to issue mentioned in here, http://stackoverflow.com/questions/19048526/ios-7-significant-location-change-launch-after-termination – Azhar Bandri Sep 04 '14 at 11:46