2014-07-04 3 views
1

Я пытаюсь получить данные (строку) с устройства без 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; 
      } 
     } 
    } 
+0

Проверка 'Toast.makeText (getApplicationContext(), string, 0) .show();' где у вас есть '0' put' Toast.LENGTH_SHORT' – masmic

+0

, я думаю, что это просто вопрос, показывающий продолжительность тост? плюс Toast отлично работает для «SUCCESS_CONNECT» , возможно, он никогда не приходит в «случай MESSAGE_READ» для выполнения своих операций. –

+0

Попробуйте. Поскольку вы не определяете время для своего тоста, возможно, его не показывают. Если это не работает, мы должны смотреть глубже. – masmic

ответ

0

я был в состоянии исправить это, позвонив

connectedThread.start(); 

после

ConnectedThread connectedThread = new ConnectedThread((BluetoothSocket)msg.obj); 

линия в корпусе SUCCESS_CONNECT.

Смежные вопросы