Ios 如何限制信标的广告范围?

Ios 如何限制信标的广告范围?,ios,ios7,bluetooth-lowenergy,ibeacon,Ios,Ios7,Bluetooth Lowenergy,Ibeacon,是否可以限制信标的范围,以便只有在某个近距离(或接近距离)内的设备才能识别并连接到信标?例如,假设0.5米区域外的设备不能看到或连接到信标。我使用iOS设备作为指示灯。在Apple的CoreLocationAPI中,有一个类中调用的方法说: 测量功率的外围设备数据: 检索可用于将当前设备作为信标播发的数据 typedef { CLProximityUnknown, CLProximityImmediate, CLProximityNear, CLProximityFar

是否可以限制信标的范围,以便只有在某个近距离(或接近距离)内的设备才能识别并连接到信标?例如,假设0.5米区域外的设备不能看到或连接到信标。我使用iOS设备作为指示灯。在Apple的
CoreLocation
API中,有一个类中调用的方法说:

测量功率的外围设备数据: 检索可用于将当前设备作为信标播发的数据

typedef {
   CLProximityUnknown,
   CLProximityImmediate,
   CLProximityNear,
   CLProximityFar
} CLProximity;
(NSMutableDictionary*)具有测量功率的外围设备数据:(NSNumber*)测量功率

参数:

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

这可以用来限制信标的范围吗?如果是,我无法理解如何确定要为
measurePower
参数设置的值?他们想说什么?
…值表示从一米之外测得的信标强度。


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

您是否查看了
邻近属性是否有用

接近度 反映到信标的相对距离的常数

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

我还尝试将
接近度
准确度
rssi
结合起来。不幸的是,没有特殊的硬件,没有简单的方法来调整iBeacon的范围

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

  • 改变标准蓝牙iBeacon的发射功率几乎是不可能的。理论上,你可以用金属屏蔽在发射机周围建造一个“法拉第笼”来降低它的功率,但我的经验是,它不是很有效,而且很容易受到屏蔽中微小缺陷的影响。如果你想改变发射功率,你必须让别人为你定制硬件

  • 软件替代方案是在iBeacon可见时使用测距API跟踪iBeacon,并且仅在估计距离足够近时执行操作,如您建议的0.5米。这非常有效——只在前景中有效


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

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

    德州仪器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始终处于广告状态,则需要一个。)

    它将根据信标的不同而变化。如果您使用Radius网络中的信标,它们的发射功率设置允许您从根本上限制信标无线电的远距离广播能力。我不知道其他品牌是否也有,但从我所看到的来看,大多数品牌都没有。

    是的,拉维有。但那是给中央设备的,不是吗?即使用于外围设备,根据我对演示应用的理解,它也只能给出两者之间的相对距离。我还测试了这两个参数。当我的中央设备接收到信号时,它会有所帮助,但会根据Rssi或精度值对其进行过滤。它不限制外围设备的广播信号范围。如果你已经理解了它的局限性,那么请解释一下。很久以来我一直在寻找和思考这个问题