Фон:
Я использую библиотеку RxAndroidBle и мне необходимо быстро (насколько это возможно) подключаться к нескольким устройствам одновременно. время и начать общение. Я использовал RxBluetoothKit для iOS и начал использовать RxAndroidBle на своем Pixel 2. Это работало как ожидалось, и я мог установить соединения с 6-8 устройствами по мере необходимости за несколько сотен миллисекунд. Однако, расширив мое тестирование на такие телефоны, как Samsung S8 и Nexus 6P, кажется, что установление одного соединения теперь может занимать более 5-6 секунд вместо 50-60 миллисекунд. На данный момент я предполагаю, что это несоответствие связано с реализациями BT для конкретных поставщиков. В конечном итоге это означает, что подключение, например, к 5 устройствам теперь занимает 30 секунд вместо ‹ 1 секунды.
Вопрос:
Насколько я понимаю из документации и других заданных вопросов, RxAndroidBle ставит в очередь все запросы на сканирование, подключение и связь и выполняет их последовательно, чтобы обеспечить безопасность и стабильность на основе различных реализаций Bluetooth в экосистеме Android. Тем не менее, есть ли в настоящее время способ выполнять запросы (а именно, подключение) параллельно, чтобы принять этот риск и потенциально сократить мое общее время для установления нескольких подключений до того устройства, которое требует больше всего времени для подключения?
И побочный вопрос: есть ли какие-нибудь идеи по диагностике того, что может занять 5 секунд, чтобы установить соединение с устройством? Или нам просто нужно смириться с тем, что некоторым телефонам в некоторых случаях потребуется так много времени?