iOS:当房间里有20多个这样的设备时连接到BLE设备?

时间:2014-06-19 02:07:33

标签: ios bluetooth bluetooth-lowenergy

我正在开发一个连接到某种类型的BLE设备的iOS应用程序,但是我在一个有20多个这样的设备的房间里编写代码,然后打开电源。我一直发现,在早上,我可以很好地连接到我的个人设备,但随着时间的推移,连接到我的设备变得不可能,好像20多个其他设备已经以某种方式唤醒并阻止我的信号。没有人使用大多数这些设备;他们只是坐在桌子上。这是一个已知的错误? Apple正在努力吗?

1 个答案:

答案 0 :(得分:0)

所有设备都是广告吗? 如果他们用20分钟的广告宣传那么可能很难听到所有。只有"只有" 3个广告渠道,可在所有设备之间共享。连接发生在相同的频道上(外围设备听取它自己的广告后听到有人想要连接)。

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

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

根据经验,苹果在背景模式下最多需要55个广告来查看设备,因为它是唯一可见的设备。因此,如果你真的需要大约1.1秒的发现,那么你可能需要20ms的广告间隔,否则使用100ms甚至更多(参见Apple广告间隔指南,了解优化发现的确切数量) 100ms提供了更多的容量,并没有太糟糕的发现。 如果你的应用程序在后台,1-2s可以在1-2分钟内找到更长的电池寿命。这对于购物中心的eyeBeacons来说非常好,而你可能想要在较小的区域内使用100-200ms。