2014-06-19 18 views
0

我正在开发一个iOS应用程序,它连接到某种类型的BLE设备,但我正在写一个房间里的代码,这个房间里有20多个这样的设备,它们都在开机。我一直发现,早上我可以连接到我的个人设备,但是随着时间的推移,我无法连接到我的设备,就好像20多个其他设备已经以某种方式唤醒并阻止了我的信号。没有人使用这些设备的大部分;他们只是坐在桌子上。这是一个已知的错误?苹果是否正在研究它?iOS:当20多个这样的设备在房间里时,连接到BLE设备?

回答

0

是否所有的设备广告? 如果他们用20ms的时间进行广告宣传,那么可能很难全部听到。在所有设备之间共享“仅”3个广告频道。连接发生在相同的通道上(外围设备在自己的广告之后侦听是否有人想要连接)。

它与Apple CoreBluetooth无关。根据我的经验,CoreBluetooth可以在连接成功后处理大约20台设备,并且活动已移至流量通道。

1)尝试使用较慢的广告时间间隔。如果您的应用处于前台,这应该可以正常工作。 2)使用BLE嗅探器(TI USB加密狗很好),看协议级别的连接是否失败,那么它不是CoreBluetooth的错误。 3)只在需要时以快速间隔做广告,或者你确实需要快速发现。

作为一个经验法则,苹果在后台模式下最多需要55个广告才能看到一个设备,当它是唯一可见的设备时。因此,如果您真的需要大约1.1秒的发现时间,那么您可能需要20ms的广告时间间隔,否则使用100ms甚至更长的时间(请参阅苹果广告时间间隔指南,以确定优化发现的确切数量)。100ms可提供更多容量并且不会太差。 1-2s提供更长的电池使用时间,如果您的应用在后台,则会在1-2分钟内找到。对于商场等的眼睛信标来说,这可能相当不错,而在较小的区域内可能需要100-200毫秒。

相关问题