我在这里有一个设备可以发送状态请求命令,然后我用
读取它bytes = mmInStream.read(statusBuffer);
虽然它改变了它的状态但我遇到了麻烦。有时我会恢复当前状态,有时程序将挂在该行上而不做其他任何事情。它不会崩溃,移动到下一行或任何东西。我只能通过关闭设备和切断连接继续前进。
我们这里有一个黑莓火炬根本没有这个错误所以它必须是我的代码。
有人可以给我一些故障排除提示吗?下面是读取设备当前状态的while循环。
while (true) {
getStatus();
try {
bytes = 0;
while(bytes < 1){
bytes = mmInStream.read(statusBuffer);
if (bytes != 0){
response = new String(statusBuffer);
//Handle response code
}
}
}
} catch (Exception e) {
Log.e(TAG, "disconnected FROM WHILE TRUE LOOP", e);
connectionLost();
break;
}
}
答案 0 :(得分:0)
如果没有可用的字节,则读取返回-1,您错过了比较并继续循环。
如果你的行以\ n char结尾,那么通过BufferedReader读取它会容易得多。无论如何,你的循环设计不是很好。
DO { //读取字节 //将结果存储在byteRead
中 //if( byteRead != -1 )
//build a string
} //做 while(byteRead!= -1)
此致 斯特凡