123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #import "CCManageLocation.h"
- #import "AppDelegate.h"
- #import "NCBridgeSwift.h"
- @implementation CCManageLocation
- + (CCManageLocation *)shared
- {
- static CCManageLocation *shared;
- @synchronized(self)
- {
- if (!shared){
- shared = [CCManageLocation new];
- }
- return shared;
- }
- }
- - (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
- {
- CLLocation* location = [locations lastObject];
-
- [[NCCommunicationCommon shared] writeLog:[NSString stringWithFormat:@"update location manager: latitude %+.6f, longitude %+.6f", location.coordinate.latitude, location.coordinate.longitude]];
-
- [self.delegate changedLocation];
- }
- - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
- {
- [self.delegate statusAuthorizationLocationChanged];
- }
- - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
- {
- [[NCCommunicationCommon shared] writeLog:[NSString stringWithFormat:@"Location manager didFailWithError: Unable to start location manager, %@", [error description]]];
-
- [self.delegate statusAuthorizationLocationChanged];
- }
- @end
|