iBeacon,蓝牙BLE和车队管理

时间:2014-01-11 21:21:36

标签: ios bluetooth core-bluetooth ibeacon

根据我的理解,信标中的次要和主要ID用于分段(例如,主要用于实体店,次要用于给定商店内的不同位置)。

然后,由于信标不能提供丰富的有效载荷,我想这些ID将被利用来为用户提供足够的信息 - 并且可能通过网络服务。

最后,据说UUID适用于整个舰队。根据我的理解,应用程序(例如零售商店)可能只注册一个或几个UUID(通常是一个,更多用于复杂的架构或服务过载)。

在应用程序级别,您可以(1)当应用程序处于前景时具有信标范围(具有针对次要/主要ID的捕获功能),以及(2)检测到区域退出/进入(monitoringForRegion:)后台+提供UILocalNotification以唤醒应用程序(返回(1))。

现在让我们来处理最终用户。我认为我们可以假设平均不会通过手中的应用程序通过整个零售商店,并且更有可能让它在后台运行。 因此,情况(2)将是最常见的情况。 但是,由于所有发射器将共享相同的UUID,并且在后台运行的地理定位管理器正在监视链接到UUID的区域,因此根据发射器的范围/配置,didEnter和didExit区域委托方法存在风险,无法智能触发。最后,并非所有您希望向客户广播的室内基于位置的广告都将被接收和捕获。 事实上,我担心只有客户到达商店位置时才会系统地建议(在后台模式下)。

我错过了什么吗?

2 个答案:

答案 0 :(得分:6)

你大多是对的。您缺少的一件事是您可以同时监控20个不同的区域,这些区域可以选择包括主要和/或次要。因此,您可以通过智能设计iBeacon标识符和区域监视器,在(大)商店中多次触发。

两个警告:当信标首次进入范围(约50米)时,区域内监控回调会触发。他们也不是同时发生的。虽然iPhone 5上的应用速度更快,但iPhone 4S上的应用程序可能需要15分钟才能完成。

答案 1 :(得分:4)

说出大卫的说法有点不同:

您可以使用UUID,UUID和主要值,或UUID +主要和次要值来定义信标区域。

如果仅使用UUID定义区域,则具有该UUID的任何信标都将触发didEnterRegion消息,并且操作系统会将具有该UUID的所有信标视为同一区域的一部分。

但是,如果您创建的区域包含UUID + Major或UUID + Major + Minor,则只有与这些值匹配的信标才会触发区域通知。您可以将2个信标具有相同的UUID和主要值,并且彼此相邻且具有不同的次要值。如果您已注册2个具有特定UUID + Major + Minor值的不同区域,您将获得有关每个区域的独立输入/退出/测距消息。具有相同UUID和主要值但具有不同次要值的第三个信标不会触发进入/退出通知。