Android BLE写入包含无符号值的byte []

时间:2017-03-24 12:17:26

标签: java android bluetooth bluetooth-lowenergy bluetooth-gatt

这个问题在这里开始生活here,但这似乎是一个红色的鲱鱼!

所以,问题是,我有一个需要写入BLE设备的字节数组值。

byte bytes[] = {0x04,0x08,0x0F,0x66,(byte)0x99,0x41,0x52,0x43,0x55,(byte)0xAA};
ch.setValue(bytes);

如果我记录了这个数组的输出,我得到(注意负值):

[4, 8, 15, 102, -103, 65, 82, 67, 85, -86]

但从理论上讲,这应该只是java对值的表示,不应该影响到蓝牙设备时的感知值,但似乎并非如此

这些值是制造商要求的,因此无法更改,但是其中2个值超出了无符号字节/ int的范围,并且看起来这是设备无法识别命令的原因。

当我将此命令写入特征时,我得到成功代码0(成功),但设备不对该命令起作用。

所以,我的问题是,我是以正确的方式发送它,还是应该格式化/处理字节数组以保持其中包含的感知值?

任何建议都非常感谢!!!

1 个答案:

答案 0 :(得分:0)

你正在做的一切都是正确的。只是当您打印字节值时,您会在基数10中看到有符号整数。您仍然会通过无线方式为每个字节发送正确的8位。