iBeacons:检测背景中的接近度变化

我试图了解你应该如何检测背景中的接近度变化。 我进入范围的唯一窗口是当我进入一个地区,但这可能是相当遥远的。

当用户input“near”或“immidiate”时,我想要提供一些东西,但是如果您在远处得到“didEnterRegion”,而不是站起来,然后靠近信标灯,则不会再有测距时间,因为您仍然在同一地区。

有没有办法延长“测距”时间让用户靠近灯塔,或者可以让“enterRegion”发生在与“远”不同的邻近处?

查尔斯在答复中说,背景的时间限制在几秒钟之内。

如果您需要延迟行动,直到您在附近地区,那么您必须使用iBeacons,使您可以降低发射功率,使发射半径更小。 RadiusNetworks的RadBeacon产品具有这种可configuration性。

如果您将RadBeaconconfiguration为最小发射功率,则您的手机将在几英尺之外才会检测到该信号,并向您发送入场事件,并在此时启动您的有限测距窗口。

充分披露:我是Radius Networks的首席工程师。

本演练展示了如何去做你所要求的。 我正在对iOS 8进行适配和testing,但是最终的应用在iOS 7上运行良好,只要邻近发生变化就推送本地通知。

在苹果“ iBeacon入门指南”的最佳实践部分,它提到了范围API不应该在后台使用。

•测距API不会在后台使用。 为了获得最佳效果,应用程序位于最前面且用户正在与应用程序进行交互时应使用范围。

可能是应用程序拒绝的捷径,请小心。

鉴于此,你不应该真的被期望在后台确定接近度。 我也采用了低信号技术,但是当您只使用一个受监控区域作为多个信标时,区分信标之间会变得有点棘手。

在后台使用iBeacons的可能性相当有限。

你可以做的是在后台监视区域(它给你didEnter / didExitRegion事件)。

您也可以打开信号灯测距,在从区域监控中获得信标进入/退出事件10秒钟后,您还将获得测距信息(即即时/近/远数据)。

也许你可以触发一个本地通知,试图让用户把你的应用程序放到前台 – 那么你将能够获得测距数据。 如果没有,那么根据我的testing,你只能得到10秒的测距数据。

对于你的问题,关于调整测距时间或调整enterRegion邻近 – 不,这些是不可能在当前版本的iOS。