Ios pausesLocationUpdatesAutomatically对iBeacon检测的影响有多大?

Ios pausesLocationUpdatesAutomatically对iBeacon检测的影响有多大?,ios,performance,cllocationmanager,ibeacon,region-monitoring,Ios,Performance,Cllocationmanager,Ibeacon,Region Monitoring,在苹果的iBeacons上,我使用以下代码初始化CLLocationManager并开始监视信标区域: self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.pausesLocationUpdatesAutomatically = false; self.locationManager.allowsBackgroundLocationUpdates = true;

在苹果的iBeacons上,我使用以下代码初始化CLLocationManager并开始监视信标区域:

    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.pausesLocationUpdatesAutomatically = false;
    self.locationManager.allowsBackgroundLocationUpdates = true;
    self.locationManager.delegate = self;
自动暂停位置更新在区域监控中起到了多大作用

官方文件说:

一个布尔值,指示位置管理器对象是否可以 暂停位置更新

然而,官方指南没有提到这一点。另外,它上一次更新是在2014年,我还没有找到更多关于这方面的信息

  • 这会如何影响电池寿命
  • 这如何影响iBeacon区域检测

如果您在文档中检查
自动暂停位置更新的完整说明,您将看到解释:

允许位置管理器暂停更新可以提高电池电量 在不牺牲位置数据的情况下延长目标设备的使用寿命。当这 属性设置为“是”,位置管理器将暂停更新(和 当位置数据丢失时,关闭相应的硬件电源) 不太可能改变。例如,如果用户在 使用导航应用程序,位置管理器可能会暂停更新一段时间 一段时间。您可以帮助确定何时暂停 通过为activityType属性指定值来更新位置

对于
活动类型

位置管理器使用此属性中的信息作为提示 确定何时可以自动暂停位置更新。暂停 更新为系统提供了在各种情况下节省电源的机会 用户的位置不太可能改变。例如 如果活动类型为CLAActivityTypeAutomotiveNavigation且否 最近发生了位置变化,无线电可能通电 向下移动,直到再次检测到移动

如果您自动启用
PausesLocationUpdates
,它将开始监控重要的位置变化并节省电池,因为它不经常使用GPS

在这种情况下,区域检测将在发生重大变化时发生,因此该检查将较少执行,这里的棘手部分是区域检测对您来说有多重要-如果您决定节省电池,重大变化检测是否可以用于区域检测


我希望这能有所帮助。

位置更新和信标检测无关

iBeacon detection使用蓝牙芯片组,不提供相应的位置。它只是告诉您输入(或退出)了一个
CLBeaconRegion

CLCircularRegion
检测不同;这取决于确定用户的纬度和经度;通过GPS或WiFi。GPS对电池寿命有重大影响


因此,简单的回答是,
pausesLocationUpdatesAutomatically
不应对信标检测产生任何影响

这次讨论对你有帮助吗?你好,谢谢你的回复。如果我正在设计一个应用程序来使用动态打开和关闭的iBeacons,那么最好将此标志保留为false。在这种情况下,我假设如果用户不移动,它将无法检测。如果我将其保留为false,并且用户没有移动,该怎么办。如果空闲,我是否希望它检测到新激活的信标?当我在测试中将它设为false时,当设备在发射信标的硬件旁边空闲时,它似乎有很长的延迟(60分钟以上,并且只有当用户解锁屏幕时)。PS:从我以前的知识来看,大多数人似乎都说有15分钟的“宽限期”当设备不移动(变长)时,这似乎不适用。文档说明,重大更改应至少每15分钟唤醒一次系统和应用程序,即使没有发生位置更改-是。但什么是重大变化?是否存在信标或位置?从我的观察来看,当应用程序未运行时,光有信标似乎并不总是足以获得15分钟的反应时间。您是否在project plist中打开了背景模式?