我已經在基於定時器的ios中實現了背景位置更新(如每1分鐘)。它的工作良好,並獲得位置(緯度和長度值),但15後它斷開連接。 我無法觸發它了。 任何人都可以幫助我。15分鐘後背景位置更新不適用於ios?
這是我的代碼..提前
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[GlobalClass sharedGlobals].locationManager stopMonitoringSignificantLocationChanges];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
[[GlobalClass sharedGlobals].locationManager requestAlwaysAuthorization];
}
[[GlobalClass sharedGlobals].locationManager startMonitoringSignificantLocationChanges];
int timeInterval = 60; // (i.e., 1 mins)
if (!setTimer) {
setTimer = [NSTimer scheduledTimerWithTimeInterval:timeInterval target: self
selector: @selector(toMakeServerCall) userInfo: nil repeats: YES];
}
}
#pragma mark - Send Current lat & long to the server
- (void)toMakeServerCall {
NSString *latitude = [NSString stringWithFormat:@"%f",[[GlobalClass sharedGlobals] currentLocationObject].coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f",[[GlobalClass sharedGlobals] currentLocationObject].coordinate.longitude];
NSLog(@"Current Lat is :%@ \n Current Long is :%@ ",latitude,longitude);
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http:www.google.com/myLatitude is: %@ and My Longitude is: %@",latitude,longitude]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
}
感謝。
但是,應用程序仍然不會每分鐘運行。即使存在重要的位置更新,重大的位置更改也會在10到15分鐘內最多更新幾次。有沒有其他方法可以繼續在後臺運行應用程序,並且每秒更新一次到我的服務器的位置?就好像我想通過更新服務器上的位置來準確跟蹤汽車所經過的路線。 –
首先,每秒都不會發生顯着變化,因爲根據我的經驗,您需要實現的距離很遠(例如不是米,而是公里)。如果您想在汽車移動時不斷更新,則必須(a)在功能屏幕中註冊背景導航模式;和(b)然後使用標準的位置服務。但是,您再也不使用定位服務的定時器。定位服務會告訴您何時已經遍歷了足夠的距離以觸發位置更新。 – Rob
感謝@Rob。我的實際要求是,我需要在動態時間間隔(如1小時,1天,3天等)期間在後臺/應用程序終止狀態期間更新位置。在那種情況下,我需要做什麼?如果可能的話,你能分享一下示例代碼嗎? – Surezz