Как улучшить пропускную способность GATT для Bluetooth с низким энергопотреблением Bluetooth?

У меня проблемы с исполнением, когда вы читаете несколько последовательных GATT, используя Android BLE API.

Я могу читать около 10 пакетов в секунду всего за 5 или 6 секунд. После того, как я прочитал пакет ~ 65, пропускная способность уменьшается примерно до 1 пакета каждые 1,5 секунды.

Я сделал несколько тестов, и кажется, что внутренняя BLE становится очень медленной. В этом случае требуется около 750 мс от вызова чтения Java GATT на периферийное устройство (нет узкого места в периферийном устройстве) и примерно на 750 мс обратно на обратный вызов Java API.

Мне кажется, что я ошибаюсь в реализации стека BLE, потому что когда я отключусь от устройства (возможно, некоторые ресурсы очищены), а затем снова подключится назад, я могу воспроизвести ту же проблему: он читает около 10 пакетов / с для первых 5 или 6 Секунд (~ 65 пакетов), тогда он становится медленным.

Я тестировал его с устройствами Galaxy S4 и Nexus 4. То же самое с обоими.

Любые предложения по его улучшению?

Я надеюсь, что с 5 июня 2014 года вы найдете решение своей проблемы. У меня тоже такая же проблема. Первые 2 ~ 3 секунды, я получаю данные в ~ 100 мс. После этого я получаю данные каждые ~ 2000 мс. Я тестирую устройство 4.3 и выше.

Я нашел для версии Lollipop и выше requestConnectionPriority на BluetoothGatt. Я не нашел решение для версии 4. *. Если у кого-нибудь есть предложение.

Надеюсь, что это поможет кому-то с ошибкой Bluetooth при передаче данных!