分配并初始化位置管理器。
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
[self.locationManager setDelegate:self];
[self.locationManager setDistanceFilter:kCLDistanceFilterNone];
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
[self.locationManager setPausesLocationUpdatesAutomatically:NO];
[self.locationManager startUpdatingLocation];
实施委托功能。
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ }
它在前景中非常完美。我想让它在后台频繁调用,就像前景一样。但事实并非如此。
请帮助我,我应该添加更多内容。
答案 0 :(得分:1)
首先,您最好阅读文档
here.
其次,使用iOS7,用户可以在iPhone的“设置”菜单中禁用位置更新。因此,您应该在AppDelegate方法backgroundRefreshStatus
中检查UIApplication类中可用的applicationDidBecomeActive
属性。如果用户拒绝了权限,则此值将设置为UIBackgroundRefreshStatusDenie
。因此,您应该要求用户通过警报提供权限。
答案 1 :(得分:1)
你说,“添加”位置“到项目的plist文件中。”
您是说您在-info.plist的“所需背景模式”中添加了“应用寄存器以进行位置更新”吗?
您是手动执行此操作,还是为目标选择“功能”的“背景模式”部分下的“位置更新”?