使用Apple的iBeacons,以下是我用来初始化CLLocationManager并开始监视信标区域的一些代码:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.pausesLocationUpdatesAutomatically = false;
self.locationManager.allowsBackgroundLocationUpdates = true;
self.locationManager.delegate = self;
pausesLocationUpdatesAutomatic在区域监控中发挥了多大作用?
官方文件显示:
一个布尔值,指示位置管理器对象是否可以暂停位置更新。
然而,"iBeacons入门"官方指南并没有提到这一点。另外,它上次更新是在2014年,我还没有找到更多关于它的信息。
- 这对电池寿命有何影响
- 这对iBeacon区域检测有何影响
位置更新和信标检测不相关。
iBeacon检测使用蓝牙芯片组,不提供这样的位置。它只是告诉您输入(或退出)了CLBeaconRegion
。
CCD_ 2检测不同;这依赖于确定用户的纬度和经度;通过GPS或WiFi。GPS对电池寿命有重大影响。
因此,简单的答案是pausesLocationUpdatesAutomatically
不应该对信标检测产生任何影响。
如果您在文档中查看pausesLocationUpdatesAutomatically
的完整描述,您将看到解释:
允许位置管理器暂停更新可以提高电池电量而不牺牲位置数据。当属性设置为YES,则位置管理器暂停更新(以及关闭适当的硬件)不太可能改变。例如,如果用户在使用导航应用程序,位置管理器可能会暂停一段时间。你可以帮助决定何时暂停通过为activityType属性赋值来更新位置。
对于activityType
:
位置管理器使用此属性中的信息作为提示确定何时可以自动暂停位置更新。正在暂停更新使系统有机会在某些情况下节省电力其中用户的位置不太可能改变。例如如果活动类型为CLActivityTypeAutomotiveNavigation且没有最近位置发生了变化,无线电可能通电向下直到再次检测到移动。
如果你打开pausesLocationUpdatesAutomatically
,它将开始监测显著的位置变化并节省电池,因为它不经常使用GPS。
在这种情况下,区域检测将在发生重大变化时进行,因此这种检查将不太频繁,这里的棘手部分是区域检测对您的重要性有多大-如果您决定节省电池,重大变化检测对区域检测是否可以。
我希望这能有所帮助。