iOS 后台模式下的 GPS 监控
Posted
技术标签:
【中文标题】iOS 后台模式下的 GPS 监控【英文标题】:GPS monitoring in background mode for iOS 【发布时间】:2014-08-21 01:13:58 【问题描述】:我想在 ios 上实现一个功能,在到达特殊位置时通知用户(例如公交车站,不要错过),如果用户总是将应用程序置于前台模式,使用 GPS 位置检测就很容易了是否快到了。关键是如何在后台模式下实现。
一种可能的解决方案是在后台模式下更新 GPS,例如地图导航 APP,但您知道 GPS 是功率杀手,用户可能不喜欢它。
查看CoreLocation API,发现以下委托回调,我不确定它们在后台模式下是否正常工作。有关此主题的任何想法,请共同分享和讨论,并在此先感谢。
- (void)locationManager:(CLLocationManager *)manager
didEnterRegion:(CLRegion *)region __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
- (void)locationManager:(CLLocationManager *)manager
didStartMonitoringForRegion:(CLRegion *)region __OSX_AVAILABLE_STARTING(__MAC_TBD,__IPHONE_5_0);
【问题讨论】:
【参考方案1】:来自Location and Maps Programming Guide
在 iOS 中,与您的应用关联的区域始终被跟踪, 包括应用程序未运行时。如果跨越区域边界 当应用程序未运行时,该应用程序将重新启动到后台 来处理事件。同样,如果应用程序在事件发生时被挂起 发生时,它会被唤醒并给予很短的时间(大约 10 秒)来处理事件。必要时,应用可以请求更多 后台执行时间使用 beginBackgroundTaskWithExpirationHandler:UIApplication 的方法 类。
【讨论】:
以上是关于iOS 后台模式下的 GPS 监控的主要内容,如果未能解决你的问题,请参考以下文章