1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #import "CCManageLocation.h"
- #import "AppDelegate.h"
- @implementation CCManageLocation
- + (CCManageLocation *)sharedInstance
- {
- static CCManageLocation *sharedInstance;
- @synchronized(self)
- {
- if (!sharedInstance){
- sharedInstance = [CCManageLocation new];
- }
- return sharedInstance;
- }
- }
- - (void)startSignificantChangeUpdates
- {
- if (self.locationManager == nil) {
-
- self.locationManager = [[CLLocationManager alloc] init];
- self.locationManager.delegate = self;
-
- if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
- [self.locationManager requestAlwaysAuthorization];
- }
-
- [self.locationManager startMonitoringSignificantLocationChanges];
- }
- - (void)stopSignificantChangeUpdates
- {
-
- [self.locationManager stopMonitoringSignificantLocationChanges];
- }
- - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
- {
- AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
- CLLocation* location = [locations lastObject];
-
- NSLog(@"[LOG] update locationManager : latitude %+.6f, longitude %+.6f",location.coordinate.latitude, location.coordinate.longitude);
-
- appDelegate.currentLatitude = location.coordinate.latitude;
- appDelegate.currentLongitude = location.coordinate.longitude;
-
- [self.delegate changedLocation];
- }
- - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
- {
- [self.delegate statusAuthorizationLocationChanged];
- }
- - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
- {
- NSLog(@"[LOG] locationManager didFailWithError: Unable to start location manager. Error:%@", [error description]);
-
- [self.delegate statusAuthorizationLocationChanged];
- }
- @end
|