【发布时间】:2012-02-20 18:44:39
【问题描述】:
我在通过 android 设备 (Gingerbread 2.3.1) 和 PC 之间的蓝牙连接丢弃字节时遇到了一些问题。我接收数据的方式是在一个 2 字节的缓冲区中。正在接收的值在几分钟内从 PC 流式传输(值表示波形)。这里只是一些sn-ps的代码,所以你可以理解。我的代码基础来自android bluetooth chat sample code。
BluetoothSocket socket;
...
mmInStream=socket.getInputStream;
...
byte[] buffer= new byte[2];
...
bytes = mmInStream.read(buffer);
有没有人对这类事情有疑问?丢弃的字节似乎是随机发生的,而在其他时间收到的值与预期的一样。我使用的是 2 字节缓冲区,因为我收到的值是 16 位有符号整数。在 PC 端,我使用 RealTerm 发送数据的二进制文件。
是否可能是我的缓冲区太小而导致字节丢失?
谢谢
【问题讨论】:
-
你在检查'bytes'的值吗?
-
不,我不是。 mmInStream.read(buffer) 返回时缓冲区是否可能未满?
标签: android stream bluetooth buffer