我们可以通过蓝牙或低功耗蓝牙(BLE)将多少设备与Android配对?

15

使用Android上的BLE固件,可以同时连接多少设备通过蓝牙连接?

5个回答

15

在 Android 蓝牙固件源代码中的搜索显示以下信息:

最大并发活跃同步 连接数 (BTA_GATTC_CONN_MAX):

  • Android 4.3 上为 4 个
  • Android 4.4+ 上为 7 个

最大并发活跃 通知数 (BTA_GATTC_NOTIF_REG_MAX):

  • Android 4.3 上为 4 个
  • Android 4.4 上为 7 个
  • Android 5.0+ 上为 15 个

相比之下,我的经验是 iOS 可以同时连接 8 个设备。

我曾经在 Android 7.1 上尝试连接超过 7 个设备,但蓝牙停止响应了。启动和停止都没有帮助,唯一解决的方法是重启设备。

通过使用连接到 4 个或更多设备的多个应用程序,我可以从经验上说这些数字是理论上的。根据每个设备及其硬件的不同,您将连接和维护与最大数量的 BLE 设备的连接更加容易或更加困难。


5

请关注维基百科上的蓝牙技术

主用蓝牙设备能够在Piconet(使用蓝牙技术的临时计算机网络)中与最多7个设备进行通信,尽管并非所有设备都达到了这一最大值。

如果您想要了解蓝牙,请先了解蓝牙中的主/从概念。

我认为好的答案取决于您的目的。

当您了解“可以与多少设备通信”取决于硬件(蓝牙芯片)时,您是正确的。 苹果iPhone 4、5或三星Galaxy S3、S4等设备的蓝牙芯片与基本的蓝牙芯片完全不同。

就我的情况而言:

我正在处理与BLE相关的固件。

由于内存不能存储许多功能,如苹果iPhone 4、5或三星Galaxy S3、S4等设备上的蓝牙芯片,因此他的外围设备使用了基本蓝牙芯片

因此,他的外围设备一次只能与一个设备配对

谢谢!


1
有其他人可以确认一下吗?这可能是Android操作系统强加的限制,因为硬件应该能够处理更多。 - Tim Tisdall
2
我现在更加困惑了。BLE 没有任何关于微网 (piconets) 的概念,只有常规蓝牙才有。我已经通过 BLE 同时连接了一个蓝牙适配器和 7 个传感器,所以我知道 BLE 能够同时处理多个设备。因此,任何限制都将在操作系统中,而您并没有提到 Android 受限于一个设备的情况。另外,reTs 已经成功地将 4 个设备连接到了 Android 设备上,因此我认为连接多个设备是可能的。 - Tim Tisdall
你已经读了我写的内容吗?哪一部分需要澄清? - Tim Tisdall
那么你的意思是你仍然不知道我们可以通过BLE连接多少设备? - Huy Tower
啊,我不知道你已经发布了答案。我不明白为什么你总是让我读你的评论。哈哈 =)) - Huy Tower
显示剩余2条评论

4

这里提供的答案都不够详细,所以我想加上一点:

BLE硬件内建有连接限制。 我想最低限制是同时3个连接,最高限制约为12-13个连接。 这些限制是由硬件设计引起的,与使用的操作系统无关。通常限制是由于硬件必须跟踪某些数据,而硬件中的内存量是有限的。

因此,我不知道Android的具体情况,但在操作系统级别实施限制没有多大意义。如果您已经由于硬件限制达到了连接数的极限,那么在尝试进行新连接时,您应该会收到某种错误/异常来防止新的连接。 实际上,蓝牙中确实有“连接限制”错误,但某些硬件会产生其他异常,如“资源不足”。 我不确定这在Android层面上如何反映。


1
我对BLE开发一窍不通,没有接触过经典蓝牙开发,不知道在BLE中什么是“配对”。那不是只存在于经典蓝牙中吗?
如果您谈到连接,当Android 4.3首次推出时,我在Nexus 7 2013上的SDK上进行了一些测试。它可以连接的最大设备数量为4。我没有测试这个数字是否在4.4中发生变化,但我可以确认它不会少于4个。

我认为连接数取决于使用的硬件,而不是操作系统。因此,有可能拥有少于4个连接或更多的设备。 我不认为Android操作系统有任何内置限制,但我不能确定。 - Tim Tisdall
我以4作为参考。我成功地在手上的任何BLE启用的Android设备上连接了4个BLE外围设备。虽然我没有在其他设备上测试限制是否大于4。 - reTs

1
对于每个系统,无论是任何固件或操作系统,如Android或iOS,都有一个配置的最大并发连接限制。但实际上,每个连接的连接参数在确定系统是否能够实现那么多并发连接方面起着非常重要的作用。
例如,如果配置的连接限制为4,则系统不能拥有超过4个并发连接。但是,如果所有连接的设备都要求更高的连接间隔(例如50毫秒的连接间隔),则系统可能无法支持它们所有。这导致一些连接断开或完全无法连接。但是,如果连接参数稍微放松(例如1秒的连接间隔),则所有连接都可以得到适当的服务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接