我的问题是:Android 4.3(客户端)可以与多个BLE设备(服务器)建立活动连接吗?如果是这样,我该如何实现呢?
到目前为止我做了什么
我尝试使用BLE和Android 4.3 BLE API评估您可以实现的吞吐量.此外,我还尝试找出可以同时连接和激活的设备数量.我使用Nexus 7(2013),Android 4.4作为主设备,TI CC2540 Keyfob作为从设备.
我为奴隶编写了一个简单的服务器软件,它通过BLE通知传输10000个20Byte数据包.我将我的Android应用程序基于Bluetooth SIG 的Application Accelerator.
它适用于一个设备,我可以在7.5 ms的连接间隔内实现大约56 kBits的有效载荷吞吐量.为了连接多个奴隶,我遵循了在北欧开发者区撰写的北欧员工的建议:
是的,可以使用单个应用程序处理多个从属服务器.您需要使用一个BluetoothGatt实例处理每个从属设备.对于您连接的每个从站,您还需要特定的BluetoothGattCallback.
所以我尝试了它,部分工作.我可以连接到多个奴隶.我也可以注册多个奴隶的通知.当我开始测试时,问题就开始了.我首先收到来自所有从站的通知,但是经过几次连接间隔后,只有来自一个设备的通知才会通过.大约10秒后,其他从属设备断开连接,因为它们似乎达到连接超时.有时我从测试开始就收到来自一个奴隶的通知.
我也尝试通过读取操作访问该属性,结果相同.在几次读取之后,只有一个设备的答案来了.
我知道在这个论坛上有一些类似的问题:Android 4.3是否支持多个BLE设备连接?,原生Android BLE GATT实现同步性吗?或Ble多重连接.但是,如果有可能以及如何做到这一点,这些答案都没有让我清楚.
我非常感谢你的建议.