Android Bluetooth BLE, какие параметры конфигурации соединения можно изменить

Я разрабатываю приложение, работающее с периферийными устройствами Bluetooth один LE. Все работает нормально, я получил характеристики услуг и т. Д. Я могу получить значения от датчиков и т. Д.

Проблема в том, что время от времени приложение "зависает" при получении значений, иногда периферийные устройства возвращают неправильные значения. Я не могу понять, почему это происходит.

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

Вот почему я хотел бы список параметров, которые бы изменили производительность моего соединения между устройствами.

Последнее, что я хочу сделать, это изменить все на периферийной (adafruit) стороне..

1 ответ

Решение

Поскольку никто не ответил на мой вопрос, и я прошел через все вопросы, связанные с переполнением стека, помеченные темой (соединение Android с Bluetooth), я собираюсь поделиться тем, что узнал. Ну, по правде говоря, я не нашел много. Большинство вопросов по поводу Android Bluetooth остаются без ответа или без правильного / удовлетворительного ответа. Знания разработчиков о BLE так низки? В самом деле? Это позор. Но прыгаю в ответ...

Что я понял, так это то, что вы ничего не можете изменить в соединении на своем телефоне Android. Все дело в периферийном бизнесе. Я нашел только один параметр, который можно "изменить", это "интервал времени соединения" (время между каждой передачей данных). Я пометил "измененный", потому что вы не можете установить запрошенное число (миллисекунды). Вы можете установить только 3 параметра для вашего соединения с gatt: (с помощью метода requestConnectionPriority())

CONNECTION_PRIORITY_BALANCED, CONNECTION_PRIORITY_HIGH and CONNECTION_PRIORITY_LOW_POWER 

Больше информации (но пока не очень) ( https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html)

Но я не уверен, за какое время они меняют интервал. Это все, что вы можете изменить. Вы не можете изменить время ожидания (которое жестко задано до 20 с), вы ничего не можете изменить. Все осталось для периферийной конфигурации. Mobile os API не позволяет нам выполнять настройки низкого уровня.

Если кто-то знает что-то еще, пожалуйста, поделитесь!

Другие вопросы по тегам