我希望我的应用每15分钟获取一次该位置,并将位置信息发送到服务器。 在服务器中,我比较了位置并将响应作为通知发送给客户端(几乎就像推送通知,但在我的服务器上)。
答案 0 :(得分:1)
您可以将CLLocation Managers授权设置为 requestAlwaysAuthorization 以持续获取位置(即使您的应用位于后台。)
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
if ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
{
[self.locationManager requestAlwaysAuthorization];
}
注意: requestAlwaysAuthorization 是电池密集型的,苹果审核人员会非常有理由使用此功能来批准您的应用。此外,请确保选中所需背景模式下的“位置更新”。
您可以使用 NSTimer 确定15分钟并从上面的 CLLocationManager 获取位置。
之后,您可以使用后台任务更新服务器的位置。
如果您有任何疑问,可以按照以下链接: http://www.creativeworkline.com/2014/12/core-location-manager-ios-8-fetching-location-background/ http://mobileoop.com/background-location-update-programming-for-ios-7 Periodic iOS background location updates
答案 1 :(得分:0)
请查看apple doc。
从指南中有一些关键点,您可能会对苹果文档中的以下部分感兴趣。
强烈建议对应用进行重要更改位置服务 不需要高精度的位置数据。有了这项服务, 仅当用户的位置更改时才会生成位置更新 显著;因此,它是提供社交应用程序或应用程序的理想选择 用户具有非关键的,与位置相关的信息。如果应用程序 更新发生时,系统会暂停,系统会将其唤醒 处理更新的背景。如果应用程序启动此服务并且是 然后终止,系统在a时自动重新启动应用程序 新的位置变得可用。这项服务在iOS 4和 之后,它仅适用于包含蜂窝网络的设备 无线电。
有关实施细节,请查看Getting location events background(ios)