我的iPhone应用程序注册了重要的位置更改。当调用位置变化时,我开始对用户位置的某个范围内的所有信标进行信标区域监视。
我的应用需要识别用户是否已进入信标区域(无论应用是否正在运行)。为实现这一目标,我们做了以下事情:
- 将信标区域的notifyEntryStateOnDisplay
标志设置为true:
beaconRegion.notifyEntryStateOnDisplay = true;
- 将pList中所需的背景模式设置为bluetooth-central。对于参考this link
我不确定是什么让它起作用。但事实证明,我们的应用程序一旦启动就不会关闭位置服务。
当位置服务关闭时,是否可以获得重要的位置更改更新和信标区域更新? 我是否需要设置所需的后台模式才能在后台运行?
答案 0 :(得分:2)
当您使用iBeacon监控特定区域时,即使应用已关闭,它也会始终在状态栏上显示位置图标。
要为您的应用停用位置服务,请尝试在转到后台时为所有注册的区域调用方法:
- (void)stopMonitoringForRegion:(CLRegion *)region
要在后台使用iBeacon,你实际上不需要“蓝牙中央”模式,而是“位置”。
答案 1 :(得分:0)
您无需保持背景模式 - 信标范围的位置更新为ON。
对于后台执行,只需使用UIBackgroundTaskIdentifier
,您的代码也可以在后台运行。
在这里查看我的回答iBeacon ranging in the background?。