Мой вопрос: может ли Android 4.3 (клиент) иметь активные соединения с несколькими устройствами (серверами) BLE? Если да, то как я могу это достичь?Android 4.3: Как подключиться к нескольким устройствам с низкой энергией Bluetooth
То, что я сделал до сих пор
Я стараюсь, чтобы оценить то, что пропускная способность вы можете достичь с помощью BLE и Android 4.3 BLE API. Кроме того, я также пытаюсь выяснить, сколько устройств можно подключать и активировать одновременно. Я использую Nexus 7 (2013), Android 4.4 как master и TI CC2540 Keyfob в качестве подчиненных.
Я написал простое серверное программное обеспечение для ведомых устройств, которое передает 10000 пакетов 20Byte через уведомления BLE. Я основал свое приложение для Android на телефоне Application Accelerator от Bluetooth SIG.
Он хорошо работает для одного устройства, и я могу достичь пропускной способности около 56 кбит/с при интервале соединения 7,5 мс. Для подключения к нескольким ведомым я последовал совет скандинавского Работника, который писал в Nordic Developer Zone:
Да, это можно обрабатывать несколько рабов с одним приложением. Вам нужно будет обрабатывать каждое подчиненное устройство с помощью одного экземпляра BluetoothGatt. Вам также понадобится конкретный BluetoothGattCallback для каждого подчиненного устройства, к которому вы подключаетесь.
Так что я пробовал, и это частично работает. Я могу подключиться к нескольким ведомым устройствам. Я также могу зарегистрироваться для уведомлений о нескольких подчиненных устройствах. Проблема начинается, когда я начинаю тест. Я получаю сначала уведомления от всех подчиненных, но после пары интервалов соединения только уведомления с одного устройства поступают. Примерно через 10 секунд другие ведомые отключены, поскольку они, похоже, достигнут таймаута подключения. Иногда я получаю сразу же от начала теста только уведомления от одного подчиненного.
Я также попытался получить доступ к атрибуту над операцией чтения с тем же результатом. После нескольких чтений только ответы от одного устройства появились.
Я знаю, что на этом форуме есть несколько подобных вопросов: Does Android 4.3 support multiple BLE device connections?, Has native Android BLE GATT implementation synchronous nature? или Ble multiple connection. Но ни один из этих ответов не дал мне понять, если это возможно и как это сделать.
Я буду очень признателен за консультацию.
Вам обязательно нужно подключиться? Если вы обеспокоены скрытием данных и надежностью или полным сбоем, возможно, вы можете просто поместить их в широковещательные пакеты и просмотреть их. –
Спасибо за ваш повтор. Я должен использовать подключенный режим по соображениям надежности. –
У меня есть поиск по всей сети, чтобы найти примеры, как сделать то, что вы сделали в своей тестовой программе @ Andreas Mueller. Не могли бы вы быть добрыми, чтобы помочь мне, и показать мне, как отправлять уведомления с Android на чип CC2540 с помощью модифицированного «ускорителя приложений»? (возможно, ссылка на ваш проект?) – HenrikS