【发布时间】:2019-04-09 11:20:33
【问题描述】:
类似这个问题 Read/Write custom characteristic from BLE device
我想知道为什么在从 BLE 设备获取数据之前我需要向它写入命令代码?
我已经做到了,甚至不知道为什么。 这是我的代码的一部分(与上面的问题几乎相同) 我已经检查了供应商的文件!确保命令正确
byte [] arrayOfByte = new byte[8];
arrayOfByte [0] = (byte) 0x51;
arrayOfByte [1] = (byte) 0x26;
arrayOfByte [2] = (byte) 0x00;
arrayOfByte [3] = (byte) 0x00;
arrayOfByte [4] = (byte) 0x00;
arrayOfByte [5] = (byte) 0x01;
arrayOfByte [6] = (byte) 0xA3;
arrayOfByte [7] = ((byte)(arrayOfByte[0] + arrayOfByte[1] + arrayOfByte[2] + arrayOfByte[3] + arrayOfByte[4] + arrayOfByte[5] + arrayOfByte[6]& 0xFF ));
Char.setValue(arrayOfByte);
boolean result = gatt.writeCharacteristic(Char);
之后会触发回调
onCharacteristicWrite
和
onCharacteristicChanged
在这两种情况下,我都有 if/else 语句来确保状态是
BluetoothGatt.GATT_SUCCESS
当我试图从
获取数据时onCharacteristicChanged
我得到了我写给它的值。
我所做的是……
根据SIG文档获取数据。 但是,我需要从自定义特征中获取数据。 为了获取其他数据,例如以前的数据而不是最后一个。
我想做的是(一步一步)
- 扫描 BLE 设备。
- 使用 Gatt 连接设备。
- 获取正确的特征(按 uuid 过滤)并设置指标或通知属性。
- 将命令(字节数组)写入特征
- 在回调函数中获取数据(使用characteristic.getvalue())
onCharacteristicChange
非常感谢!
【问题讨论】:
标签: android bluetooth-lowenergy