我有一個應用程序,收集經緯度/長座標只使用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