Мой вопрос: может ли Android 4.3 (клиент) иметь активные соединения с несколькими устройствами (серверами) BLE? Если да, то как я могу это достичь?
Что я сделал до сих пор
Я пытаюсь оценить, какую пропускную способность вы можете достичь, используя BLE и Android 4.3 BLE API. Кроме того, я также пытаюсь выяснить, сколько устройств можно подключать и активировать одновременно. Я использую Nexus 7 (2013), Android 4.4 в качестве основного и TI CC2540 Keyfob в качестве ведомых устройств.
Я написал простое серверное программное обеспечение для ведомых устройств, которое передает 10000 20Byte-пакетов через уведомления BLE. Я основал приложение для Android на Application Accelerator от Bluetooth SIG.
Он хорошо работает для одного устройства, и я могу достичь пропускной способности около 56 кбит/с при интервале соединения 7,5 мс. Чтобы подключиться к нескольким подчиненным, я последовал совету Северного Сотрудника, который написал в Северная зона разработчиков:
Да, можно обрабатывать несколько подчиненных устройств одним приложением. Вам нужно будет обрабатывать каждое подчиненное устройство с помощью одного экземпляра BluetoothGatt. Вам также понадобится конкретный BluetoothGattCallback для каждого подчиненного устройства, к которому вы подключаетесь.
Итак, я попробовал это, и он частично работает. Я могу подключиться к нескольким ведомым устройствам. Я также могу зарегистрироваться для уведомлений о нескольких подчиненных устройствах. Проблема начинается, когда я начинаю тест. Я получаю сначала уведомления от всех подчиненных, но после пары интервалов соединения только уведомления с одного устройства поступают. Примерно через 10 секунд другие ведомые отключены, поскольку они, похоже, достигнут таймаута подключения. Иногда я получаю сразу же от начала теста только уведомления от одного подчиненного.
Я также попытался получить доступ к атрибуту над операцией чтения с тем же результатом. После нескольких чтений только ответы от одного устройства вошли в корыто.
Мне известно, что на этом форуме есть несколько подобных вопросов: Поддерживает ли Android 4.3 несколько подключений устройств BLE?, Имеет встроенный Android BLE GATT реализацию синхронного характера? или Ble multiple connection. Но ни один из этих ответов не дал мне понять, если это возможно и как это сделать.
Я был бы очень благодарен за совет.