是否可以在另一个iBeacon范围内进行iBeacon检测? BLE

时间:2014-05-20 09:39:42

标签: bluetooth-lowenergy ibeacon

iBeacon问题。这可能吗..

我可以在一个10英尺乘25英尺的舞台的角落上使用4个iBeacon。这是使用所以我可以检测应用程序中的这个阶段区域。 (4个iBeacon需要这样做还是可以用3完成?)

我然后需要应用程序来检测2件事......

  1. 应用程序需要检测它是在区域的内部还是外部,以及它与区域外的区域以及区域的哪个区域有多接近。

  2. 如果第5个iBeacon进入该区域,该应用程序是否可以检测到前4个iBeacon设置的舞台区域内有单独的iBeacon。

  3. E.g。你应用程序通过使用4个iBeacon来告诉你前面有一个舞台和舞台的相关位置。该应用程序然后告诉您现在有另外5个iBeacon进入舞台并且它在舞台上的位置。然后,应用程序可以检测到第5个iBeacon现已离开舞台。

    这可能吗?

2 个答案:

答案 0 :(得分:1)

是的,只要每个信标都有唯一的标识符,您就可以。我很可能将信标配置为:

  • 拥有相同的UUID
  • 拥有相同的专业
  • 拥有唯一次要

如果你使用CoreLocation' locationManager:didRangeBeacons:inRegion:,代表会给你一个回调,它包含当前可以看到的所有信标。您可以使用它来跟踪您自己的信标列表,看看是否出现了新的信标。

示例代码可能如下所示:

- (void)locationManager:(CLLocationManager *)manager 
        didRangeBeacons:(NSArray *)beacons 
               inRegion:(CLBeaconRegion *)region 
{
    for (CLBeacon *beacon in beacons)
    {
        // TODO: Handle each beacon logic here
    }

    // TODO: Clean up any stale beacons here (e.g. remove old beacons)
}

```

答案 1 :(得分:1)

csexton的答案在多个信标范围方面是正确的,但您可能难以使用多个信标准确地确定10' x25'阶段。

iBeacon距离计算基于接收信号强度,并且受到吸收无线电信号的事物(例如人)的影响很大。 iPhone没有定向蓝牙天线,因此它无法对接收到的信号进行三角测量,因此这意味着如果正在接收阶段左边缘的信标,则应用程序不会被激活知道该设备是在舞台上,在iBeacon的右侧,还是在观众的舞台上。

我猜你所能做的就是尝试。