我正在使用BLE技术实现一个Android应用程序。蓝牙设备设计用于测量温度。它使用来自TI的cc2541。使用BTool蓝牙低功耗Pc应用程序v1.40.5的硬件测试与设备交互很好:我们写入特征值0x2f并启动命令0100并输入下游命令(23 53 54 00 6e 00 00。 .. FE)我们使用特征值0x2b。问题是如何在我的Android应用程序中实现相同的测试.i能够连接到设备,阅读可用的服务和特性,不知道在哪里编写命令或读取特征。 / p>
答案 0 :(得分:3)
要使用Android BLE API为特征写入新值,您需要首先在本地更新特征值,然后将该特征写入远程设备,然后等待调用onCharacteristicRead进行调用。
实施例, 写一个值来远程BLE设备的特性:
1)连接到远程BLE设备
2)发现服务和特征
3)从您要找的BluetoothGatt BluetoothGattservice查找
4)从BluetoothGattservice中查找要更新其值的BluetoothGattCharacteristic
5)使用mCurrentCharacteristic.setValue(value)
方法将新值本地设置为BluetoothGattCharacteristic
6)使用mBluetoothGatt.writeCharacteristic(mCurrentCharacteristic)
方法将更新后的特性写入远程BLE设备
7)然后等待调用回调onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status)
以确保特征是否已成功写入远程BLE设备
要从远程BLE设备读取特征值:
1)连接到远程BLE设备
2)发现服务和特征
3)从您要找的BluetoothGatt BluetoothGattservice查找
4)从BluetoothGattservice中查找要读取其值的BluetoothGattCharacteristic
5)调用readCharacteristic(BluetoothGattCharacteristic characteristic)
方法
6)然后等待调用回调onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status)
以从远程BLE设备检索特征
7)使用characteristic.getValue()
从特征中获取数据