Android:同时 BLE 连接的限制

Android: Limit of simultaneous BLE connections

我们正在开发一个 Android 应用程序,它可以通过低功耗蓝牙同时连接到多个心率传感器。

我们有一个运行良好的实现,所以代码不是问题。 让我们抓狂的是并行 BLE 连接的限制,这似乎因设备而异。

我们这里有一些测试设备:摩托罗拉 MotoE 和 MotoG、三星 Galaxy Tab A 和 HTC Nexus 9。它们都是 运行 Android 5 或 6,原始供应商版本. None 其中能够同时连接超过 7 个 BLE HR 传感器。

然后我用我的私人三星 Galaxy S4 进行了测试,它已经 root 并安装了 Cyanogen CM12。使用此设备,我可以轻松地同时连接到 12 个心率传感器,这是我们希望通过我们的应用程序实现的数量。

我已经用我们自己的应用程序实现和 Nordic Semiconductor nRF 主控制面板对此进行了测试,我认为这是一个非常好的通用 BLE 应用程序:https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp&hl=de

当我尝试将应用程序连接到我们任何设备上的第 7 个 BLE 传感器时,ADB 输出打印以下错误消息: E/BluetoothLeBasicConn:连接状态更改错误:133

我对整个问题进行了相当深入的谷歌搜索,但我发现的大多数结果都很陈旧。有人说,限制来自蓝牙芯片组本身,其他人说这是通过 Android 的软件限制。

你能帮我看看限制是从哪里来的吗?

如果是芯片组,那么我想知道,我们应该使用哪些设备来支持尽可能多的并行连接。遗憾的是,很难找出不同设备中内置的蓝牙芯片组。我发现的几乎所有硬件规格都没有说明这一点。

如果限制来自软件方面,我们是否可以在不对手机进行 root 或安装模组的情况下以某种方式更改它OS?

非常感谢!

以防你还对它感兴趣。极限来自 BTA_GATTC_CONN_MAX(在 android 中硬编码) 设置为:

  • 4 Android 4.3 和
  • 7 Android 4.4

顺便说一句,您可以激活通知的特征数量也有限制。 (BTA_GATTC_NOTIF_REG_MAX) 即:

  • 4 Android 4.3,
  • 7 Android 4.4 和
  • 15 在 Android 5.0