我们正在开发一个Android应用程序,它可以同时通过蓝牙低能连接到多个心率传感器。
我们有一个运行良好的实现,所以代码不是问题。让我们抓狂的是并行BLE连接的限制,这种连接似乎因设备而异。
我们这里有一些测试设备:摩托罗拉MotoE和MotoG,三星Galaxy和HTC 9。它们都在运行安卓5或6,这是最初的供应商版本。它们都不能同时连接到7个以上的BLE HR传感器。
然后,我用我的私人三星GalaxyS4进行了测试,它是根型的,并且安装了CyanogenCM12。有了这个设备,我可以很容易地连接到12个HR传感器同时,这是我们想要实现的数字与我们的应用。
我已经用我们自己的应用程序实现和北欧半导体nRF主控制面板测试了这一点,我认为这是一个相当好的通用https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp&hl=de应用程序。
当我试图将该应用程序连接到任何设备上的第7个BLE传感器时,亚行输出的输出会打印以下错误消息:e/BLE:连接状态更改错误: 133
我对整个问题做了相当深入的搜索,但我发现的大多数结果都很陈旧。有人说,这种限制来自蓝牙芯片组本身,另一些人则说这是通过Android的软件限制。
你能帮我找出限制的来源吗?
如果是芯片组,那么我想知道,我们应该使用哪些设备来支持尽可能多的并行连接。遗憾的是,很难找到哪台蓝牙芯片组是在不同的设备中构建的。我发现的任何硬件规格几乎都不能说明这件事。
如果限制来自软件方面,我们是否可以通过某种方式改变它,而不使用生根手机或安装经过修改的操作系统?
非常感谢!
发布于 2016-03-17 08:23:38
以防你还对它感兴趣。这个限制来自BTA_GATTC_CONN_MAX (在android中硬编码),它被设置为:
顺便说一句,您可以激活通知的特征数量也有限制。(BTA_GATTC_NOTIF_REG_MAX),即:
https://stackoverflow.com/questions/34400182
复制相似问题