我正在寻找你可以在iOS和安卓上连接的并发BLE设备的最大数量的确定值。我自己做了研究和测试,结果并不一致。蓝牙LE规范没有限制同时连接的数量,但由于内存限制,平台增加了上限。
在Android7上,我可以同时连接22个BLE外设。在一台Android 9上,我一次只能连接12个BLE外设。在Android 10上,我有时可以同时连接12个BLE外设,而在其他时间,同样的设置可以同时连接14个BLE外设。所有这些测试都是在三星Galaxy Tab 10硬件上进行的。
iOS是一个类似的故事。我已经能够在iOS 9上同时连接8个BLE外围设备,在iOS 10、11和12上同时连接12个BLE外围设备,在iOS 13上同时连接15个BLE外围设备。我还没有测试iOS 14。这项测试是在iPad Mini 2s、iPad Mini 5s和iPhone 7+s上进行的,在所有硬件上都有相同的结果。这个网站上的其他人声称在装有iOS 10的iPhone 6S上看到了多达20个并发设备-我不能证实这一点。
我从其他人的测试中看到了很多类似的数字,有些人甚至引用了Android和Apple的文档来说明这些值。在最近几个版本的Android或iOS的文档中,我找不到任何调用这些最大值的内容。
有没有人能帮我指出真正的、有记录的价值?谢谢!
发布于 2020-10-15 06:34:06
可悲的事实是,对于大多数设备来说,到处都找不到记录在案的值。制造商在任何地方都没有说明蓝牙的限制。然而,当产品通过蓝牙认证和声明时,它需要指定支持的每个蓝牙功能,而不是它可以处理的连接数。
BLE规范没有规定任何限制,因此由蓝牙实现来决定。
首先,蓝牙芯片(控制器)通常有自己的限制。HCI不公开任何功能来查询最大连接数,因此主机堆栈不知道控制器的限制是什么。首先,当达到最大值时,主机尝试连接另一个设备时,控制器将返回已达到最大连接数的HCI错误代码。
所有的蓝光芯片都有独特的局限性。正如您所注意到的,它们通常在3到20之间。此限制比设备运行的特定操作系统和版本更重要。
现在,如果我们看看Android蓝牙主机堆栈,在我上次检查源代码时,它的硬编码限制是7个连接。因此,在Pixel和Nexus手机上,运行“香草”安卓系统的手机的上限将是7,尽管蓝牙芯片本身可以处理更多(我已经重新编译了AOSP,提高了上限,并在Nexus 6P上验证了这一点)。我已经看到,其他制造商,如三星,提高了这一限制,以匹配蓝牙芯片的实际支持。
无论如何,查看特定的操作系统版本不会给出任何有用的信息;您必须单独测试每台设备。
https://stackoverflow.com/questions/64360109
复制相似问题