私はBluetooth経由で文字列としてxmlを受け取るアプリを開発しています(ArduinoとAndroid携帯から)。
Bluetoothから無効/不完全な文字列を取得しています。Bluetoothは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>**
質問が明確でない場合は、私が更新することを教えてください
よろしくお願いします