Bluetooth Low Energy on Android我遇到了一些困难。我已经密切完成了我链接的指南,并检查了完整示例code。我有一个BLE设备,我需要连接到并从中检索数据帧。文档在某一点上要求
发现/启用服务:服务UUID
UUID1
,特征UUIDUUID2
一旦正确执行,设备应该开始以特定方式格式化20字节的流帧。
搜索设备,连接设备并发现设备上的服务我没有问题。但后来我被卡住了。要获得服务,请调用BluetoothGatt
的方法getServices()
。这将返回BluetoothGattService
的列表,其中还包含BluetoothGattCharacteristic
的列表。显然,BluetoothGattService
的UUID必须等于提供UUID1,而BluetoothGattCharacteristic
的UUID必须等于UUID2。但我不知道如何以某种特征'启用'这项服务。
我的文档也没有提到描述符。我检查了UUID2
特征中只有一个描述符。所以现在我拥有了所有可能需要的东西 - 服务UUID,特征UUID和描述符...但是我如何读取数据呢?
答案 0 :(得分:1)
您可以迭代所有找到的特征,并使用UUID1和UUID2获取BluetoothGattCharacteristic对象。使用" UUID.fromString()"将表示UUID的字符串转换为UUID对象,该对象可以与" .equals"一起使用。与" characteristic.getUuid()"。
进行比较如果我理解正确,您想要阅读一些特征数据。当你打电话给#34; connectGatt"在您的BluetoothDevice上,您会得到一个" BluetoothGatt"类型的对象。在发现要调用的服务和特征之后使用此gatt对象" readCharacteristic()"在它上面,传递所需的BluetoothCharacteristic作为参数。
我希望我可以帮助并告诉我是否应该澄清我的答案
Linard