我有一个应用程序,收集经纬度/长坐标只使用iPad中的GPS芯片(IE没有WiFi或ios8蜂窝)。它似乎一直工作,除非应用程序闲置大约一个小时(应用程序仍然打开,但iPad锁。)这是我的代码CoreLocation停止获取更新后空闲
我通过按UIButton获取坐标并存储在IBAction中调用[self.locman startUpdatingLocation];
他们到文档目录中的文本文件。
// Delegate method from the CLLocationManagerDelegate protocol.
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations {
// If it's a relatively recent event, turn off updates to save power.
CLLocation* location = [locations lastObject];
NSDate* eventDate = location.timestamp;
NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];
if (abs(howRecent) < 1) {
self.lat = [NSString stringWithFormat:@"%.8f",location.coordinate.latitude];
self.longString = [NSString stringWithFormat:@"%.8f",location.coordinate.longitude];
[self.locman stopUpdatingLocation];
}
}
此外,如果它没有一个小时漫长的沉寂获得更新,该应用程序也将随之得到更新,如果用户在一个小时内再次按下按钮。所以这似乎是一个热身问题。
澄清。这似乎是一个时间问题。出于测试目的,我会收集坐标....开车5分钟,并收集坐标。我可以在停止之间以5分钟的间隔做足够多次。无论屏幕变成空白还是我按下“睡眠”按钮,这都可以很好地工作。当我单独离开ipad大约一个小时(路程超过5分钟)时,问题就出现了。然后,该应用会给我0.000000和0.0000000的坐标。
这是我的位置管理器的实例。
self.locman = [[CLLocationManager alloc] init];
//self.locman.pausesLocationUpdatesAutomatically = NO;
self.locman.delegate = self;
self.locman.desiredAccuracy = kCLLocationAccuracyBest;
self.locman.distanceFilter = kCLDistanceFilterNone;
self.locman.desiredAccuracy = kCLLocationAccuracyHundredMeters;
所以你面临的问题是,当应用程序打开但iPad被锁定时,位置没有更新? – 2014-10-08 19:21:26
请参阅我的编辑 – user2402616 2014-10-08 20:34:54