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

时间:2015-04-17 22:24:28

标签: android bluetooth bluetooth-lowenergy android-bluetooth

Bluetooth Low Energy on Android我遇到了一些困难。我已经密切完成了我链接的指南,并检查了完整示例code。我有一个BLE设备,我需要连接到并从中检索数据帧。文档在某一点上要求

  

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

一旦正确执行,设备应该开始以特定方式格式化20字节的流帧。

搜索设备,连接设备并发现设备上的服务我没有问题。但后来我被卡住了。要获得服务,请调用BluetoothGatt的方法getServices()。这将返回BluetoothGattService的列表,其中还包含BluetoothGattCharacteristic的列表。显然,BluetoothGattService的UUID必须等于提供UUID1,而BluetoothGattCharacteristic的UUID必须等于UUID2。但我不知道如何以某种特征'启用'这项服务。

我的文档也没有提到描述符。我检查了UUID2特征中只有一个描述符。所以现在我拥有了所有可能需要的东西 - 服务UUID,特征UUID和描述符...但是我如何读取数据呢?

1 个答案:

答案 0 :(得分:1)

您可以迭代所有找到的特征,并使用UUID1和UUID2获取BluetoothGattCharacteristic对象。使用" UUID.fromString()"将表示UUID的字符串转换为UUID对象,该对象可以与" .equals"一起使用。与" characteristic.getUuid()"。

进行比较

如果我理解正确,您想要阅读一些特征数据。当你打电话给#34; connectGatt"在您的BluetoothDevice上,您会得到一个" BluetoothGatt"类型的对象。在发现要调用的服务和特征之后使用此gatt对象" readCharacteristic()"在它上面,传递所需的BluetoothCharacteristic作为参数。

我希望我可以帮助并告诉我是否应该澄清我的答案

Linard