Sho*_*uri 5 ios bluetooth-lowenergy ios7 ibeacon
是否可以限制信标的范围,以便只有特定近距离(或接近度)内的设备才能识别并连接到信标?让我们说例如0.5米区域以外的设备不应该能够看到或连接到信标.我正在使用iOS设备作为灯塔.在Apple的CoreLocationAPI中,CLBeaconRegion类中有一个名为peripheralDataWithMeasuredPower的方法,它说:
peripheralDataWithMeasuredPower: 检索可用于将当前设备通告为信标的数据.
(NSMutableDictionary*)peripheralDataWithMeasuredPower:(NSNumber*)measuredPower
参数:
measuredPower:设备的接收信号强度指示器(RSSI)值(以分贝为单位).该值表示距离一米远的信标的测量强度,并在测距期间使用.指定
nil使用设备的默认值.
这可以用来限制信标的范围吗?如果是,我无法理解如何决定为measurePower参数设置的值?他们试图说...value represents the measured strength of the beacon from one meter away..什么?
如果这是一个非常基本的问题,请原谅.我最近开始iOS开发,非常感谢您的帮助.谢谢.
dav*_*ung 13
不幸的是,没有特殊硬件就没有简单的方法来调整iBeacon的范围.
您提到的功率场只是iBeacon传输的校准值.它不会影响iBeacon的实际物理无线电范围. 如果距离50米的iPhone可以看到发射器,那么改变功率场值将不会改变这一点. 它唯一做的是改变是校准常数,它是iOS软件内部距离估计算法(用于精度和接近场)的输入.改变功率场将影响API返回的估计距离,但不会改变首次检测到iBeacon的实际距离.
改变标准蓝牙iBeacon的发射功率几乎是不可能的.从理论上讲,你可以使用金属屏蔽在发射器周围构建一个"法拉第笼"来静音它的功率,但我的经验是它不是很有效,而且很容易受到屏蔽中的微小缺陷的影响.如果你想改变发射功率,你必须让别人建立自定义硬件.
软件替代方案是使用测距API在iBeacon可见时跟踪iBeacon,并且仅在估计距离足够接近时执行操作,比如说你所建议的0.5米.这很有效 - 只在前台.
如果您需要在近距离实际在后台唤醒您的应用程序,这将无法正常工作.您可以做的最好的事情是让监控API在首次检测到iBeacon时唤醒您的应用,然后向用户发送通知并开始测距.如果用户选择将应用程序带到前台(50米处),您可以继续监控,然后在0.5米处执行所需的操作.如果用户没有选择将应用程序带到前台,iOS在暂停应用程序之前只会给你大约5秒的时间来继续测试.在这段时间内,距离不太可能从50米变为0.5米.
| 归档时间: |
|
| 查看次数: |
9228 次 |
| 最近记录: |