У меня небольшой вопрос о связи по Bluetooth, я просматривал на YouTube учебное пособие о том, как создать приложение, которое взаимодействует с моим arduino.Все идет хорошо;однако моя единственная проблема заключается в том, что когда я проверяю поступающие данные от arduino в телефоне, строковые данные, кажется, проверяются случайным образом с использованием Stringbuilder, поэтому проверка иногда может работать или не работать.Полученные данные выглядят следующим образом: «B1234».Леттет B указывает, какие данные получены, следующие цифры - это сами данные, а точка указывает конец потока.Я новичок в Android, поэтому прошу прощения, если мой вопрос не так ясен, как должно быть. Вот java-код onReceive для BluetoothConnectionService:
byte [] buffer = new byte [1024];
int bytes;
//Keep listening to the InputStream until an exception occurs
while(true) {
try {
bytes mainstream.read(buffer);
String incomingMessage = new String (buffer, 0, bytes);
Intent incomingMessageIntent = new Intent ("incomingMessage");
incomingMessageIntent.putExtra ("theMessage", incomingMessage);
LocalBroadcastManager.getInstance (mContext).sendBroadcast(incomingMessageIntent);
}
catch (Exception e) {
break;
}
}
А вот полученный java-код в MainActivity:
publix final BroadcastReceiver mBroadcastReceiver5 = new BroadcastReceiver () {
public void onReceive(Context context, Intent intent) {
final String text = intent.getStringExtra ("theMessage");
messages.append(text); //Append StringBuilder
FragmentData.RXData.setText (messages);
messages.setLength(0);
}
}