0

У меня возникли некоторые трудности с Bluetooth Low Energy on Android. Я внимательно проделал руководство, которое я связал, а также проверил полный пример code. У меня есть устройство BLE, с которым мне нужно подключиться и получать данные. Документации в одной точке диктуетЧтение данных потока из устройства с низким энергопотреблением Bluetooth

Discover/Включить службу: Услуги UUID UUID1, характеристика UUID UUID2

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

Поиск устройства, подключение к нему и обнаружение сервисов на нем У меня нет проблем. Но тогда я застрял. Чтобы получить услуги, вызывается метод BluetoothGattgetServices(). Это возвращает список BluetoothGattService, который со своей стороны также содержит список BluetoothGattCharacteristic. Очевидно, UUID BluetoothGattService должен быть равен UUID1 и BluetoothGattCharacteristic UUID для UUID2. Но я не знаю, как «включить» эту услугу с определенной характеристикой.

В моей документации также не упоминаются дескрипторы. Я проверил и есть только один дескриптор в характеристике UUID2. Итак, теперь у меня есть все, что может понадобиться - Service UUID, характерный UUID и дескриптор ... Но как я могу прочитать данные?

ответ

1

Вы можете перебрать все найденные характеристики и получить объект BluetoothGattCharacteristic с UUID1 и UUID2. Используйте «UUID.fromString()», чтобы преобразовать строку, представляющую UUID, в объект UUID, который может использоваться с «.equals» для сравнения с «character.getUuid()».

Если я правильно вас понял, вы хотите прочитать некоторые данные характеристики. Когда вы вызываете «connectGatt» на вашем BluetoothDevice, вы получаете объект типа «BluetoothGatt». Используйте этот gatt-объект после обнаружения службы и характеристик для вызова «readCharacteristic()» на ней, передавая требуемый аргумент BluetoothCharacteristic в качестве аргумента.

Я надеюсь, что я мог бы помочь и дайте мне знать, если я должен уточнить мой ответ

Linard

+0

Вызов 'readCharacteristic (характеристика)', то 'onCharacteristicRead()' -callback, к сожалению, не называется. – jdepypere

+0

@jdepypere вы можете проверить, не вызван ли обратный вызов, когда вы вызываете readCharacteristic (...) в основной поток? Существует немало проблем с вызовом методов BLE в фоновых потоках ... http://stackoverflow.com/a/20507449/1990080 –

+0

Я использовал [этот метод] (http://stackoverflow.com/a/11125271/ 1319187) для запуска 'mBluetoothGatt.readCharacteristic (character)', но обратный вызов все еще не вызван ... – jdepypere

Смежные вопросы

 Смежные вопросы