[英]Reading stream data from Bluetooth Low Energy device
我在Android上使用Bluetooth Low Energy时遇到了一些困难。 我已经仔细完成了我链接的指南,并检查了完整的示例代码 。 我有一个BLE设备,我需要连接到该设备并从中检索数据帧。 某一时刻的文档要求
发现/启用服务:服务UUID
UUID1
,特征UUIDUUID2
正确执行此操作后,设备应开始以特定方式格式化20字节的流帧。
搜索设备,连接到该设备并在该设备上发现服务我没有问题。 但是后来我被困住了。 为了获得服务,调用了BluetoothGatt
的方法getServices()
。 这将返回BluetoothGattService
的列表,它们的一部分还包含BluetoothGattCharacteristic
的列表。 显然, BluetoothGattService
的UUID必须等于提供的UUID1,而BluetoothGattCharacteristic
的UUID必须等于UUID2。 但是我不知道如何以某些特性来“启用”该服务。
我的文档也没有提到描述符。 我已经检查过,并且在UUID2
特性中只有一个描述符。 因此,现在我拥有了可能需要的所有东西-服务UUID,特征UUID和描述符...但是如何读取数据?
您可以遍历所有找到的特征,并使用UUID1和UUID2获取BluetoothGattCharacteristic对象。 使用“ UUID.fromString()”将表示UUID的字符串转换为UUID对象,然后可以将其与“ .equals”一起使用以与“ characteristic.getUuid()”进行比较。
如果我对您的理解正确,则希望读取一些特征数据。 当您在BluetoothDevice上调用“ connectGatt”时,您将得到一个类型为“ BluetoothGatt”的对象。 发现服务和特征后,使用该gatt对象在其上调用“ readCharacteristic()”,并传递所需的BluetoothCharacteristic作为参数。
希望我能帮忙,让我知道是否应该澄清我的答案
Linard
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.