Ios pausesLocationUpdatesAutomatically对iBeacon检测的影响有多大?
在苹果的iBeacons上,我使用以下代码初始化CLLocationManager并开始监视信标区域: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;
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中打开了背景模式?