5

是否可以限制信标的范围,以便只有在一定近距离(或接近度)内的设备才能识别并连接到信标?例如,0.5 米区域外的设备不应该看到或连接到信标。我正在使用 iOS 设备作为信标。在 Apple 的API 中, CLBeaconRegionCoreLocation类中有一个名为peripheralDataWithMeasuredPower的方法,它表示:

peripheralDataWithMeasuredPower: 检索可用于将当前设备宣传为信标的数据。

(NSMutableDictionary *)peripheralDataWithMeasuredPower:(NSNumber *)measuredPower

参数:

测量功率:设备的接收信号强度指示器 (RSSI) 值(以分贝为单位)。该值表示从一米外测得的信标强度,并在测距期间使用。指定nil使用设备的默认值。

这可以用来限制信标的范围吗?如果是,我无法理解如何决定为measurePower参数设置的值?他们想表达...value represents the measured strength of the beacon from one meter away..什么?

如果这是一个非常基本的问题,请原谅。我最近开始了 iOS 开发,非常感谢您的帮助。谢谢。

4

4 回答 4

13

不幸的是,没有特殊硬件就没有简单的方法来调整 iBeacon 的范围。

  1. 您提到的功率场只是 iBeacon 传输的校准值。它不会影响 iBeacon 的实际物理无线电范围。 如果发射器可以被 50 米外的 iPhone 看到,那么改变功率场值根本不会改变这一点。 它唯一会改变的是校准常数,它是 iOS 软件中距离估计算法(用于精度和接近度场)的输入。改变功率场会影响 API 返回的估计距离,但不会改变 iBeacon 首次检测到的实际距离。

  2. 改变标准蓝牙 iBeacon 的发射功率几乎是不可能的。从理论上讲,您可以使用金属屏蔽在发射器周围构建一个“法拉第笼”以使其功率静音,但我的经验是它不是很有效,而且很容易受到屏蔽中微小缺陷的影响。如果你想改变发射功率,你必须有人为你定制硬件。

软件替代方案是使用测距 API 在 iBeacon 可见时对其进行跟踪,并且仅在估计距离足够近时执行操作,例如您建议的 0.5 米。这很好用——只在前台。

如果您需要在后台近距离唤醒您的应用程序,这将不起作用。您可以做的最好的事情是让监控 API 在首次检测到 iBeacon 时唤醒您的应用程序,然后向用户发送通知并开始测距。如果用户选择将应用程序置于前台(50 米处),您可以继续监控,然后在 0.5 米处执行所需的操作。如果用户不选择将应用程序置于前台,iOS 只会给您大约 5 秒的时间继续测距,然后才会暂停您的应用程序。在这段时间内,距离从 50 米变为 0.5 米的可能性很小。

于 2013-11-02T04:22:11.597 回答
3

对于我研究过的大多数 BLE 芯片,通常至少有四种传输功率水平设置可用于限制广告范围。

Texas Instruments CC2541(在其 SensorTag 开发设备中使用)和 CC2540 具有 +4、0、-6 和 -23 作为其功率级别选项。但是,在 SensorTag 中更改它确实需要重新编译固件。照原样,提供的固件只在一个地方提到了功率水平,但这只是广播的一个值,用于通知任何中央听众信标的响度——以便中央设备可以更好地根据接收到的估计范围计算信号强度 (RSSI)。必须在固件中添加一条附加线才能实际更改传输功率。例如:

HCI_EXT_SetTxPowerCmd( HCI_EXT_TX_POWER_0_DBM );

基于此,iOS 设备上应该有两个地方可以设置功率级别:一个只是通知听众级别是多少,另一个是 BLE 芯片的真实传输功率实际上发生了变化。但是,希望这些值仅限于几个可能满足或可能不满足您的实际范围需求的枚举选择。

(SensorTag 的 -23 设置可能适用于 0.5 米的检测范围。但如果您希望 SensorTag 始终在做广告,则需要进行额外的固件更改。)

于 2014-02-28T16:56:04.727 回答
1

您是否查看过该proximity属性是否有帮助?来自苹果文档

CLProximity 反映到信标的相对距离的常数。

typedef {
   CLProximityUnknown,
   CLProximityImmediate,
   CLProximityNear,
   CLProximityFar
} CLProximity;

我还会尝试尝试将proximitywithaccuracy和结合起来rssi

于 2013-11-01T03:12:04.570 回答
0

它会因信标而异。如果您使用 Radius Networks 的信标,它们具有传输功率设置,可让您从根本上限制信标无线电远距离广播的能力。我不知道其他品牌是否有它,但据我所见,大多数都没有。

于 2014-04-07T16:22:47.123 回答