我使用以下代码(来自蓝牙聊天示例应用程序)来读取传入的数据并从读取的字节中构造一个字符串.我想阅读,直到这个字符串到达<!MSG>.如何使用read()函数插入此条件?
整个字符串看起来像这样<MSG><N>xxx<!N><V>yyy<!V><!MSG>.但read()函数不会立即读取整个字符串.当我显示字符时,我看不到同一行中的所有字符.看起来像:
发件人: <MS
发件人: G><N>xx
发件人: x<V
.
.
.
我在手机上显示字符(HTC Desire),然后使用windows hyperterminal发送数据.
如何确保所有字符都显示在一行?我曾尝试使用StringBuilder和StringBuffer而不是新的String()但问题是read()函数没有读取所有发送的字符.输入流的长度(字节)不等于发送的字符串的实际长度.从读取字节构造字符串正好发生.
感谢您对此提出的任何建议和时间.另外,如果有的话,请随时提出其他错误或更好的做法.
干杯,
马杜
public void run() {
Log.i(TAG, "BEGIN mConnectedThread");
//Writer writer = new StringWriter();
byte[] buffer = new byte[1024];
int bytes;
//String end = "<!MSG>";
//byte compare = new Byte(Byte.parseByte(end));
// Keep listening to the InputStream while connected
while (true) {
try {
//boolean result = buffer.equals(compare);
//while(true) {
// Read from the InputStream
bytes = mmInStream.read(buffer);
//Reader reader = …Run Code Online (Sandbox Code Playgroud)