我的應用需要位置數據才能運行。我確保用戶在登錄前必須接受我的應用的位置服務。如果用戶拒絕,它將阻止用戶登錄,直到用戶授予應用使用位置服務的權限。CLLocationManager委託方法didUpdateToLocation在用戶的設備上未調用
除1個測試用戶的設備外,一切正常。即使用戶授予了應用程序位置服務權限,設備也不會獲取位置數據。沒有GPS圖標出現。谷歌地圖對用戶的設備工作正常。我真的不確定這裏發生了什麼。看起來好像didUpdateToLocation
根本不在該用戶的設備上調用。什麼可能導致這個問題?
代碼:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
[self getCurrentLocation];
...
}
- (void)getCurrentLocation {
if (nil == locationManager)
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = 100; // meters
[locationManager startMonitoringSignificantLocationChanges];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
CLLocation *currentLocation = newLocation;
if (currentLocation != nil) {
[self setLatitude:[NSNumber numberWithFloat:currentLocation.coordinate.latitude]];
[self setLongitude:[NSNumber numberWithFloat:currentLocation.coordinate.longitude]];
if (loginController) {
[loginController validateSession];
loginController = nil;
}
}
}
如果您嘗試在設備上,請刪除locationManager.distanceFilter = 100;因爲更新定位方法每100米後調用你的手機走測試你可以刪除它 – 2014-09-05 09:52:46