Я пытаюсь получить данные (строку) с устройства без Bluetooth-устройства (arduino с HC-06). Код внутри arduino выглядит довольно хорошо, он отправляет строку в непрерывном цикле, и я смог увидеть ее с помощью последовательного монитора. Но когда я пытаюсь использовать его с моим телефоном Android, он становится сопряженным, подключенным и показывает «Подключиться» в тосте, но я никогда не мог получить его строку и отобразить ее на текстовом представлении. Скажите, пожалуйста, если я сделал что-то неправильно.Android bluetooth соединяется, подключается, но никогда не получает данные в TextView.
код внутри моего класса активности, в методе OnCreate:
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what)
{
case SUCCESS_CONNECT:
ConnectedThread connectedThread = new ConnectedThread((BluetoothSocket)msg.obj);
Toast.makeText(getApplicationContext(), "Connect", 0).show()
break;
case MESSAGE_READ:
byte[] readBuf = (byte[])msg.obj;
String string = new String(readBuf);
Toast.makeText(getApplicationContext(), string, 0).show();
tvTest.setText(string);
Внутри ConnectedThread класс:
public void run() {
byte[] buffer; // buffer store for the stream
int bytes; // bytes returned from read()
// Keep listening to the InputStream until an exception occurs
while (true) {
try {
// Read from the InputStream
buffer = new byte[1024];
bytes = mmInStream.read(buffer);
// Send the obtained bytes to the UI activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
break;
}
}
}
Проверка 'Toast.makeText (getApplicationContext(), string, 0) .show();' где у вас есть '0' put' Toast.LENGTH_SHORT' – masmic
, я думаю, что это просто вопрос, показывающий продолжительность тост? плюс Toast отлично работает для «SUCCESS_CONNECT» , возможно, он никогда не приходит в «случай MESSAGE_READ» для выполнения своих операций. –
Попробуйте. Поскольку вы не определяете время для своего тоста, возможно, его не показывают. Если это не работает, мы должны смотреть глубже. – masmic