Я сохраняю данные, полученные через Bluetooth, в readDataA1/B1/A2/B2/A3 и B3, которые объявлены как String global на уровне класса.
Я не знаю, почему readDataA1/B1/A2/B2/A3 и B3 в конце этой функции имеют значение последней полученной строки. В конце концов, у этой 6 переменных было то же значение. И ham1, ham2 и ham3 всегда равны нулю. Я не знаю, где его затирают.
String[] splitReadMsgA1 = readMessage.split(":");
readDataA1 = splitReadMsgA1[0];
if (splitReadMsgA1[1].equals("A.1")){
String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
sendMsg(list_data + ":" + "B.1");
}
else{
String[] splitReadMsgB1 = readMessage.split(":");
readDataB1 = splitReadMsgB1[0];
if (splitReadMsgB1[1].equals("B.1")){
String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
sendMsg(list_data + ":" + "A.2");
ham1 = HammingDistance(StringToIntArray(readDataA1), StringToIntArray(readDataB1));
}
else{
String[] splitReadMsgA2 = readMessage.split(":");
readDataA2 = splitReadMsgA2[0];
if (splitReadMsgA2[1].equals("A.2")){
String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
sendMsg(list_data + ":" + "B.2");
}
else{
String[] splitReadMsgB2 = readMessage.split(":");
readDataB2 = splitReadMsgB2[0];
if (splitReadMsgB2[1].equals("B.2")){
String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
sendMsg(list_data + ":" + "A.3");
ham2 = HammingDistance(StringToIntArray(readDataA2), StringToIntArray(readDataB2));
}
else{
String[] splitReadMsgA3 = readMessage.split(":");
readDataA3 = splitReadMsgA3[0];
if (splitReadMsgA3[1].equals("A.3")){
String list_data = new String(Arrays.toString(calcSigWindow(mean_acc_data, timeInMilli)));
sendMsg(list_data + ":" + "B.3");
}
else{
String[] splitReadMsgB3 = readMessage.split(":");
readDataB3 = splitReadMsgB3[0];
ham3 = HammingDistance(StringToIntArray(readDataA3), StringToIntArray(readDataB3));
}
}
}
}
}
Нет. Проблема заключалась в том, что я написал readDataAx / Bx вне if




Какое значение имеет переменная readMessage? Вы получите то же значение в переменных readDataA1 / B1 / A2 / B2 / A3 / B3, если все условия «if» вернут false.