6

这个问题是关于当应用程序在后台时我得到一个与 2 个 iBeacons 一起工作的应用程序(相同的 UUID,相同的主要,不同的次要)。

例如,第一个 iBeacon(次要 1)用于门。当应用程序在后台时,我会收到一条通知,告知我进入该区域。这工作正常。现在,例如,我走进商店,在某个时候是第二个 iBeacon(次要 2)。如果我在第二个 iBeacon 的直接区域,应用程序应该触发通知。(“嘿,你在收银台”)。但是我读到当应用程序在后台时这是不可能的。它仅在我按下肩部按钮或主页按钮时才有效。 http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html

所以问题:谁能给我一个提示如何实现这个用例。

4

1 回答 1

14

几件事:

创建信标区域时,您可以仅匹配 UUID、UUID 和主要值,也可以匹配 UUID、主要和次要值。

如果您仅指定 UUID,您的信标进入/退出通知将不包括主要/次要值信息。

同样,如果您创建一个具有 UUID 和主要但非次要值的区域,您的信标进入/退出消息将包括信标的 UUID 和主要值,但不包括次要值。

最简单的做法是创建一个单独的区域以达到您正在跟踪的唯一信标。然后,您将获得每个信标的单独进入/退出通知。

如果您希望多个信标成为同一区域的一部分,但报告不同的主要或主要/次要值,您必须打开信标测距并等待测距调用。在测距调用中,您将获得与当前区域匹配的所有信标的信标对象数组(不是信标区域对象、CLBeacon 对象)。信标对象将包括该信标的实际 UUID、主要和次要。

如果您在后台并同时打开了信标监视和测距,您将收到一条 didEnterRegion 消息(或者可能是更改状态消息),然后是几秒钟的测距信息,然后您的应用程序将重新进入睡眠状态。

当您的应用程序处于后台时,您唯一真正的选择是显示本地通知并希望用户再次唤醒您的应用程序。如果用户滑动该通知,系统会在需要时提示用户提供解锁凭据,然后将用户带回您的应用程序。

于 2013-12-05T20:33:40.823 回答