首页 文章

使用蓝牙从电脑或手机发送命令的区别

提问于
浏览
2

我正在使用Xamarin在C#中开发一个跨平台应用程序 . 在我的应用程序中,我使用蓝牙在应用程序和第三方设备之间进行通信 .

直到现在,当从所有平台发送短字节命令时,一切都像魅力一样 . 但是,当从移动电话(iOS和Android)发送更长字节命令(35字节)时,就好像该设备没有获得任何命令或得到一些命令并且无法理解它 .

我发送的命令如下:

OutPutStream.Write(MyData.ToArray(), 0, NumberOfytes);

然而,当我在PC上使用完全相同的代码行和相同的字节时,一切都很好,我得到了我想要的响应 .

我还试图通过以下方式捕获Android developer site上指定的异常:

try
{
    OutPutStream.Write(MyData.ToArray(), 0, NumberOfytes);
}
catch (Java.Lang.IndexOutOfBoundsException e)
{
    throw;
}
catch (IOException e)
{
    throw;
}

当我将上面的行放入时,总是调用IOException(即使使用有效的命令), e 为null . 奇怪的是 bytes are actually sent 并收到了所有命令(除了长命令)!我确信所有其他命令都已正确接收,因为收到的响应是唯一的并且与我发送的命令相匹配 .

如果有人能告诉我我做错了什么(如果有的话)?或者,如果我在iOS和Android上通过蓝牙发送字节的方式有所不同?

干杯!

1 回答

  • 0

    以防其他人遇到我遇到的同样问题,这就是我“解决”它的方式 . 我最终决定尝试使用新的蓝牙设备,但它确实有效 .

    我仍然对它如何在PC上运行感兴趣,但可以假设它可能更慢地通过蓝牙发送字节或具有更好的错误控制/ ACK算法?

    希望这在某种程度上有所帮助 . 干杯

相关问题