У меня возникли некоторые трудности с Bluetooth Low Energy on Android. Я внимательно проделал руководство, которое я связал, а также проверил полный пример code. У меня есть устройство BLE, с которым мне нужно подключиться и получать данные. Документации в одной точке диктуетЧтение данных потока из устройства с низким энергопотреблением Bluetooth
Discover/Включить службу: Услуги UUID
UUID1
, характеристика UUIDUUID2
После того, как это было выполнено правильно, то устройство должно начать потоковое кадры из 20 байт, отформатированных в определенный способ.
Поиск устройства, подключение к нему и обнаружение сервисов на нем У меня нет проблем. Но тогда я застрял. Чтобы получить услуги, вызывается метод BluetoothGatt
getServices()
. Это возвращает список BluetoothGattService
, который со своей стороны также содержит список BluetoothGattCharacteristic
. Очевидно, UUID BluetoothGattService
должен быть равен UUID1 и BluetoothGattCharacteristic
UUID для UUID2. Но я не знаю, как «включить» эту услугу с определенной характеристикой.
В моей документации также не упоминаются дескрипторы. Я проверил и есть только один дескриптор в характеристике UUID2
. Итак, теперь у меня есть все, что может понадобиться - Service UUID, характерный UUID и дескриптор ... Но как я могу прочитать данные?
Вызов 'readCharacteristic (характеристика)', то 'onCharacteristicRead()' -callback, к сожалению, не называется. – jdepypere
@jdepypere вы можете проверить, не вызван ли обратный вызов, когда вы вызываете readCharacteristic (...) в основной поток? Существует немало проблем с вызовом методов BLE в фоновых потоках ... http://stackoverflow.com/a/20507449/1990080 –
Я использовал [этот метод] (http://stackoverflow.com/a/11125271/ 1319187) для запуска 'mBluetoothGatt.readCharacteristic (character)', но обратный вызов все еще не вызван ... – jdepypere