Android:同时BLE连接的限制

时间:2015-12-21 16:25:37

标签: android connection simultaneous bluetooth-lowenergy

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

我们的实现工作得很好,所以代码不是问题。 令我们发疯的是平行BLE连接的限制,这似乎与设备不同。

我们在这里有一些测试设备:摩托罗拉MotoE和MotoG,三星Galaxy Tab A和HTC Nexus 9.所有这些都运行Android 5或6,原始供应商版本。它们都不能同时连接到7个以上的BLE HR传感器。

然后我测试了我的私人三星Galaxy S4,它已植根并安装了Cyanogen CM12。使用此设备,我可以轻松连接到12个HR传感器,这是我们想要通过我们的应用程序实现的数字。

我已经使用我们自己的应用程序实现和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的软件限制。

你能帮我找一下限制的来源吗?

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

如果限制来自软件方面,我们是否可以在不使用手机或安装改装操作系统的情况下以某种方式进行更改?

非常感谢!

1 个答案:

答案 0 :(得分:10)

如果您仍然对它感兴趣。限制来自 BTA_GATTC_CONN_MAX(在android中硬编码) 设置为:

    Android 4.3上的
  • 4和
  • 7 on Android 4.4

顺便提一下,您还可以激活通知的特征量。 (BTA_GATTC_NOTIF_REG_MAX) 这是:

  • 4 on Android 4.3,
  • Android 4.1上的
  • 7和
  • Android 5.0上的
  • 15