信标监控保持位置服务,无限期。 iOS版

时间:2014-06-04 14:29:14

标签: ios iphone bluetooth-lowenergy core-bluetooth

我的iPhone应用程序注册了重要的位置更改。当调用位置变化时,我开始对用户位置的某个范围内的所有信标进行信标区域监视。

我的应用需要识别用户是否已进入信标区域(无论应用是否正在运行)。为实现这一目标,我们做了以下事情:

- 将信标区域的notifyEntryStateOnDisplay标志设置为true:

beaconRegion.notifyEntryStateOnDisplay = true;

- 将pList中所需的背景模式设置为bluetooth-central。对于参考this link

我不确定是什么让它起作用。但事实证明,我们的应用程序一旦启动就不会关闭位置服务。

当位置服务关闭时,是否可以获得重要的位置更改更新和信标区域更新? 我是否需要设置所需的后台模式才能在后台运行?

2 个答案:

答案 0 :(得分:2)

当您使用iBeacon监控特定区域时,即使应用已关闭,它也会始终在状态栏上显示位置图标。

要为您的应用停用位置服务,请尝试在转到后台时为所有注册的区域调用方法:

- (void)stopMonitoringForRegion:(CLRegion *)region

要在后台使用iBeacon,你实际上不需要“蓝牙中央”模式,而是“位置”。

答案 1 :(得分:0)

您无需保持背景模式 - 信标范围的位置更新为ON。

对于后台执行,只需使用UIBackgroundTaskIdentifier,您的代码也可以在后台运行。

在这里查看我的回答iBeacon ranging in the background?