NRF52 java 无符号字节问题

问题描述 投票:0回答:1

我正在将 ble 与 nrf52 一起使用,并使用 java 从 android 发送字节数组命令,如下所示

byte[] header=new byte[]{
            (byte )0x5f,
            (byte) 0xf0,
            (byte) 0xf1,
            (byte) 0xf2,
    };

当我将这些字节记录到控制台时,我看到如下

[111,-16,-15,-14]

设备收到命令但未发送应答

但是,如果我用 swift 从 iOS 发送相同的命令,命令数据如下所示

[111,240,241,242]

并且按方面工作。

什么可能导致此行为?可能与java的unsingned byte支持有关?

java android bluetooth-lowenergy nrf52
1个回答
0
投票

您走在正确的道路上。虽然您的 iOS 应用程序将接收到的数据作为“无符号字节”处理,但 Android 应用程序将它们解释为“有符号字节”。您可能希望使用相应的 *unsigned 方法将它们视为无符号值,例如 Byte.compareUnsigned

© www.soinside.com 2019 - 2024. All rights reserved.