В настоящее время я создаю приложение Android и SDK для подключения к пользовательской плате BLE. Ожидается, что сторона Android будет периферийной, а моя доска - мастером. Создание GATT-сервера на стороне Android завершено, моя плата подключается и подключается без проблем. Если я просто принимаю все входящие обновления параметров соединения на главной стороне и не отправляю новые параметры, соединение стабильно на большинстве телефонов.
Проблема, которую я обнаружил сейчас, заключается в том, что на телефонах с Qualcomm Bluetooth В этом случае чип Qualcomm будет запрашивать «недопустимые» параметры соединения, отправляя «Предпочитаемую периодичность» как 0. Это затем вызывает разрыв соединения и повторное подключение каждые 30 с c.
Я думаю, что это ошибка на Сторона Qualcomm, поскольку «Предпочтительная периодичность» должна быть 0, только если «Интервал Мин» и «Интервал Макс» совпадают. Если «Интервал Мин» отличается от «Интервал Макс», «Предпочтительная периодичность» не должна равняться 0. Встроенное в мое устройство решение QCOM нарушает это правило, вызывая разъединения.
Другой Android Телефон с Решение Broadcom Bluetooth также запрашивает «Предпочитаемую периодичность» как 0, но имеет те же «Минимальный интервал» и «Максимальный интервал», которые работают без проблем.
Есть кто-нибудь, если возможно, и как избежать разрыва соединения на стороне платы или, если есть что-то, что я могу сделать на стороне Android, чтобы предотвратить одновременное обновление параметров соединения?
Заранее спасибо!