1

在 Apple 的iBeacons上工作,这里是一些我用来初始化 CLLocationManager 并开始监视信标区域的代码:

    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.pausesLocationUpdatesAutomatically = false;
    self.locationManager.allowsBackgroundLocationUpdates = true;
    self.locationManager.delegate = self;

pausesLocationUpdatesAutomatically在区域监控中的作用有多大?

官方文档说:

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

然而,“ Getting Started with iBeacons ”官方指南并没有提到这一点。另外,它最后一次更新是在 2014 年,我还没有找到更多关于此的内容。

  • 这对电池寿命有何影响?
  • 这对 iBeacon 区域检测有何影响?
4

2 回答 2

1

位置更新和信标检测不相关。

iBeacon 检测使用蓝牙芯片组,不会为您提供这样的位置。它只是告诉您您进入(或退出)了 a CLBeaconRegion

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

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

于 2016-07-27T13:11:45.927 回答
0

如果您检查pausesLocationUpdatesAutomatically文档中的完整描述,您将看到解释:

允许位置管理器暂停更新可以在不牺牲位置数据的情况下延长目标设备的电池寿命。当此属性设置为 YES 时,位置管理器会在位置数据不太可能更改时暂停更新(并关闭适当的硬件)。例如,如果用户在使用导航应用时停下来吃东西,位置管理器可能会暂停更新一段时间。您可以通过为 activityType 属性分配值来帮助确定何时暂停位置更新。

对于activityType

位置管理器使用此属性中的信息作为提示,以确定何时可以自动暂停位置更新。在用户位置不太可能发生变化的情况下,暂停更新使系统有机会节省电力。例如,如果活动类型是 CLActivityTypeAutomotiveNavigation 并且最近没有发生位置更改,则可能会关闭无线电,直到再次检测到移动。

如果您打开pausesLocationUpdatesAutomatically它,它将开始监视重大的位置变化并节省电池,因为它不经常使用 GPS。

在这种情况下,区域检测将在发生重大变化时发生,因此该检查将不那么频繁地执行,这里棘手的部分是区域检测对您来说有多重要 - 如果您决定节省电池,那么重大变化检测就可以了区域检测。

我希望这有帮助。

于 2016-07-27T09:34:56.037 回答