繁体   English   中英

从低功耗蓝牙设备读取流数据

[英]Reading stream data from Bluetooth Low Energy device

在Android上使用Bluetooth Low Energy时遇到了一些困难。 我已经仔细完成了我链接的指南,并检查了完整的示例代码 我有一个BLE设备,我需要连接到该设备并从中检索数据帧。 某一时刻的文档要求

发现/启用服务:服务UUID UUID1 ,特征UUID UUID2

正确执行此操作后,设备应开始以特定方式格式化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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM