我正在开发一个 android 应用程序,它通过蓝牙从Asuro
一个小机器人接收字节数组。
这个字节数组是一个命令协议,因此固定大小为 15 此外,应用程序将字节数组发送给 Asuro,Asuro 将其发回。
但是,如果我使用 read(byte[],0,15) 函数并将此数组提供给 Log.d,则此字节数组会被拆分。
请看下面的代码:
public void run() {
Log.i(TAG, "BEGIN mConnectedThread");
byte[] buffer = new byte[15];
int bytes = 0;
// Keep listening to the InputStream while connected
while (true) {
try {
// Read from the InputStream
bytes = mmInStream.read(buffer, 0, 15);
if (buffer[0] != 0) {
Log.d("Asuro-Android", "Input :" + Arrays.toString(buffer));
}
buffer = new byte[15];
} catch (IOException e) {
Log.e(TAG, "disconnected", e);
connectionLost();
break;
}
}
}
我要发送给 Asuro:
Output: [58, 48, 49, 48, 48, 48, 49, 48, 48, 48, 51, 48, 48, 48, 48]
连接等工作。为了简化它,我创建了一个数组并将其刷新到输出流中。
但我得到:
Input :[58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Input :[48, 49, 48, 48, 48, 49, 48, 48, 48, 51, 0, 0, 0, 0, 0]
Input :[48, 48, 48, 48, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
这可能是我(应用程序)的错误,还是只能是 asuro 的错误?