iOS 和 Android 上的最大并发蓝牙 LE 设备数?

pen*_*ump 2 android ios core-bluetooth bluetooth-lowenergy android-bluetooth

我正在寻找可在 iOS 和 Android 上连接的最大并发 BLE 设备数量的明确值。我自己做了研究和测试,结果并不一致。蓝牙 LE 规范并不限制同时连接的数量,但由于内存限制,平台增加了上限。

在 Android 7 上,我能够同时连接 22 个 BLE 外设。在一台 Android 9 上,我一次只能连接 12 个 BLE 外设。在 Android 10 上,我有时能够同时连接到 12 个 BLE 外设,而在其他时间相同的设置可以同时连接到 14 个 BLE 外设。所有这些测试都是在 Samsung 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 版本的文档中找不到任何提及这些最大值的内容。

有人能帮我指出真实的、记录在案的价值观吗?谢谢!

Emi*_*mil 5

可悲的事实是,对于大多数设备来说,在任何地方都找不到记录的值。制造商没有在任何地方说明蓝牙限制。然而,当产品通过蓝牙认证和声明时,需要指定支持的每一个支持的蓝牙功能,但不需要指定它可以处理多少个连接。

BLE 规范没有规定任何限制,因此由蓝牙实现来决定。

首先,蓝牙芯片(控制器)通常有其自身的限制。HCI 不公开任何查询最大连接数的功能,因此主机堆栈不知道控制器的限制是什么。首先,当达到最大连接数并且主机尝试连接另一个设备时,控制器将返回已达到最大连接数的 HCI 错误代码。

所有蓝牙芯片都有独特的局限性。正如您所注意到的,它们的范围通常在 3 到 20 之间。此限制比设备运行的特定操作系统和版本更重要。

现在,如果我们查看 Android 蓝牙主机堆栈,我上次检查源代码时,它的硬编码限制为 7 个连接。因此,在运行“普通”Android 的 Pixel 和 Nexus 手机中,限制将为 7,即使蓝牙芯片本身可以处理更多(我已经重新编译了 AOSP,增加了限制,并在 Nexus 6P 上验证了这一点)。我看到其他制造商(例如三星)增加了此限制以匹配蓝牙芯片实际支持的内容。

无论如何,查看特定的操作系统版本不会提供任何有用的信息;您必须单独测试每个设备。