通过Monodroid中的BluetoothSocket传递带符号的字节数组

时间:2012-10-18 14:32:18

标签: c# java xamarin.android

使用Monodroid通过蓝牙向设备发送命令时遇到了一个有趣的问题。

我正在使用这种Monodroid方法:

BluetoothSocket.OutputStream.Write(byte [] buffer,int offset,int count);

我需要发送以下8字节帧:

  • 0x51
  • 0×26
  • 为0x0
  • 为0x0
  • 为0x0
  • 为0x0
  • 0xFFFFFFA3
  • 为0x0

问题是0xFFFFFFA3是一个带符号的字节(-93),所以这意味着我需要使用C#.NET的sbyte而不是byte来创建数组以传递给Write方法。

但是,我无法将sbyte []数组传递给Write方法,我只能传递byte []数组。 C#.NET不允许我将0xFFFFFFA3放在一个字节中,因为它是有符号的。

如何通过套接字传递命令?谢谢。

1 个答案:

答案 0 :(得分:1)

0xFFFFFFA3是Int32的大小,这可能是编译器抱怨的原因。您应该只能指定一个0xA3的字节值。