我正在将一些BLE代码从iOS移植到Android,我们需要做的部分是检查一些标记值。它在iOS中运行良好但是当我在Android Studio中放入相同的代码时,会给我一个警告,说我的条件总是假的。这就是我所拥有的:
if(bytes[0] == 0xFF && bytes[1] == 0xFF && bytes[2] == 0xFF && bytes[3] == 0xFF && bytes[4])
{
event.type = EventType.NONE;
}
我认为操作顺序有些奇怪,所以我尝试将每个检查包装成自己的括号,但它仍然说同样的事情。我想摆脱警告,但我似乎无法管理。
答案 0 :(得分:3)
Java字节已签名且可包含-128到127之间的值,0xFF
被解释为整数值而不是字节,并且您实际上将值-1与255进行比较,因此您的比较失败。
您应该使用bytes[0] == -1
或(bytes[0] == (byte) 0xFF