2016-04-03 23 views
0

私はAndroidとArduinoで自分のプロジェクトをやっていますが、BluetoothからAndroidからArduinoにメッセージを送信できますが、ArduinoからAndroidにBluetooth経由でメッセージを送信するのは苦労しています。事前コードを受信Android ArduinoとBluetooth

でproject.Thankます:

プライベートクラスReadInputはRunnableを{

private boolean bStop = false; 
    private Thread t; 

    public ReadInput() { 
     t = new Thread(this, "Input Thread"); 
     t.start(); 
    } 

    public boolean isRunning() { 
     return t.isAlive(); 
    } 

    @Override 
    public void run() { 
     InputStream inputStream; 

     try { 
      inputStream = mBTSocket.getInputStream(); 
      while (!bStop) { 
       byte[] buffer = new byte[256]; 
       if (inputStream.available() > 0) { 
        inputStream.read(buffer); 
        int i = 0; 
        /* 
        * This is needed because new String(buffer) is taking the entire buffer i.e. 256 chars on Android 2.3.4 http://stackoverflow.com/a/8843462/1287554 
        */ 
        for (i = 0; i < buffer.length && buffer[i] != 0; i++) { 
        } 
        final String strInput = new String(buffer, 0, i); 

        /* 
        * If checked then receive text, better design would probably be to stop thread if unchecked and free resources, but this is a quick fix 
        */ 

        if (chkReceiveText.isChecked()) { 
         mTxtReceive.post(new Runnable() { 
          @Override 
          public void run() { 
           mTxtReceive.append(strInput); 
           //Uncomment below for testing 
           //mTxtReceive.append("\n"); 
           //mTxtReceive.append("Chars: " + strInput.length() + " Lines: " + mTxtReceive.getLineCount() + "\n"); 

           int txtLength = mTxtReceive.getEditableText().length(); 
           if (txtLength > mMaxChars) { 
            mTxtReceive.getEditableText().delete(0, txtLength - mMaxChars); 
           } 

           if (chkScroll.isChecked()) { // Scroll only if this is checked 
            scrollView.post(new Runnable() { // Snippet from http://stackoverflow.com/a/4612082/1287554 
             @Override 
             public void run() { 
              scrollView.fullScroll(View.FOCUS_DOWN); 
             } 
            }); 
           } 
          } 
         }); 
        } 

       } 
       Thread.sleep(500); 
      } 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

    public void stop() { 
     bStop = true; 
    } 

} 
+0

コードとこれまでに試したことを表示します。 – Mangesh

+0

プライベートクラスReadInputはRunnableを実装しています{ プライベートboolean bStop = false; プライベートスレッドt; public ReadInput(){ t =新しいスレッド(this、 "Input Thread"); t.start(); } 公開ブールisRunning(){ return t.isAlive(); } @Override public void run(){ InputStream inputStream; –

+0

try { inputStream = mBTSocket.getInputStream(); while(!bStop){ byte []バッファ=新しいバイト[256]; if(inputStream.available()> 0){ inputStream.read(buffer); int i = 0; /* –

答えて

0

がアルドゥイーノのRXにBluetoothモジュールとBluetoothモジュールのTXのTXへのArduinoのRXを入れてみてくださいを実装します。どのarduinoを使用していて、使用しているBluetoothモジュールは何ですか?それはHC05Hですか?

可能であれば、コードを表示してください。

+0

Arduino UNOとBluetoothモジュールはHC05 –

+0

です。メッセージはArduinoから送信されていますが、Androidアプリで表示できません。 –

0

ちょうどSerial.print("");を使用すると、ArduinoからAndroidに文字列を送信できます。詳細については、refer to this linkを参照してください。

+0

はい私はすでにこの例を試してgithubからコードをダウンロードしましたが、何も表示されません。 –

+0

先生、arduinoからのメッセージを受け取る機能を共有してもらえますか? –

0

私はBluetoothとArduinoを使って同様のプロジェクトを作っています。私は完全に動作するコードを持つgithubを持っています:https://github.com/Primaelq/Mapping-Robot/blob/master/Companion%20App/Eye-BotCompanionApp/app/src/main/java/studio/eye/a/eye_botcompanionapp/BluetoothService.javaこれはBluetoothServiceクラスです。接続されたスレッドメソッドを見てください。コードを使用したり、質問をしても構いません。

希望はあなたを助けます。

+0

了承してください。 –