我正在开发通过蓝牙接收XML作为字符串(从Arduino的和Android手机)的应用程序。
我正在从蓝牙无效/不完整的字符串。 蓝牙被定义为一个Android服务。 每当我收到一个字符串,它不是以原来的形式没有母校,我从Arduino的或其他android手机发送。 XML解析功能工作我检查了这一点。
这里是我的代码,其中我收到的字符串
mConnectedThread = new ConnectedThread(btSocket);
mConnectedThread.start();
h = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case RECIEVE_MESSAGE: // if receive massage
byte[] readBuf = (byte[]) msg.obj;
String strIncom = new String(readBuf, 0, msg.arg1); // create string from bytes array
sb.append(strIncom); // append string
int endOfLineIndex = sb.indexOf("\n"); // determine the end-of-line
if (endOfLineIndex > 0) { // if end-of-line,
String sbprint = sb.substring(0, endOfLineIndex); // extract string
sendXML(sbprint); // this method is for sending the xml string
sb.delete(0, sb.length()); // and clear
}
Log.d(TAG, "...String:"+ sb.toString() + "Byte:" + msg.arg1 + "...");
Log.d("IncString", strIncom);
break;
}
};
};
下面是我使用的样本XML字符串
<head><hbt v='100'/><hrg v='75'/></head>
我总是得到字符串,但不能完成这样**v='100'/><hrg v='75'**
或**</head>**
如果这个问题不明确告诉我任何事情,我将更新
thanx提前