(Android)有关从BLE设备的自定义特征获取数据的问题

时间:2019-04-09 11:20:33

标签: android bluetooth-lowenergy

类似于此问题 Read/Write custom characteristic from BLE device

我想知道为什么我需要在从BLE设备获取数据之前向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文档获取数据。 但是,我需要从定制特征中获取数据。 为了获取其他数据,例如以前的数据,而不是最后一个数据。


我想做的是(逐步)

  1. 扫描BLE设备。
  2. 使用Gatt连接设备。
  3. 获取正确的特征(通过uuid进行过滤)并设置指标或notify属性。
  4. 将命令(字节数组)写入特征
  5. 在回调函数中获取数据(使用feature.getvalue())
onCharacteristicChange

非常感谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过调试项目? 对不起,听起来像是混蛋。但是,认真的说,尝试一步一步地遵循它,看看会发生什么。