2016-09-02 15 views
0

私は多くのトピックを読んでいましたが、良い答えが見つかりませんでした。私はBluetoothを使用してマイクロコントローラからデータを送受信するAndroidアプリケーションに取り組んでいます。私はすでに一部分を送信し終わっており、正常に動作しますが、私はAndroidでデータを受信することに問題があります。 私はこのライブラリを使用しています:https://android-arsenal.com/details/1/690#!descriptionそれが正しくチュートリアル持っていない(あるいは、少なくとも私はそれを見ることはありません)、それだけでAndroid上でデータを受信について言うこの:AndroidでBluetooth経由でデータを受信する方法は?

//Listener for data receiving 
bt.setOnDataReceivedListener(new OnDataReceivedListener() { 
    public void onDataReceived(byte[] data, String message) { 
     // Do something when data incoming 
    } 
}); 

誰もがいずれかを持っていますどのようにそれを使用するアイデア?私は自分でBluetooth部分全体を書き込もうとしましたが、難しかったのでこのライブラリを使用することにしました。私は常に受信データを待ち受ける必要がありますが、UIスレッドをブロックするので、ループでそれを行うことはできません。

答えて

0

これは基本的にコールバック関数です。パラメータでわかるように、byte []型の2つのデータとString型のメッセージを提供しています。今、あなたはわずか2を記録し、値が

Log.d("Data value : " + data.toString() + "Message : " + message); 

以下のようにあなたに与えられている。そして、あなたが

以下のようなアップデートビューのように、それをどうするつもりことを何でも、など何ができるかを見ることができます
TextView messageView = findViewById(R.id.message); 
messageView.setText(message); 
+0

私はほとんどそれを持っていると思う。だから、これはライブラリバッファのデータのように私のために、私はそれを使って何かをしたいときに、私はこのリスナーを呼び出す必要がありますか?私はこのようなやり方をする必要があります:マイクロコントローラがデータを送信する場合(いつでも可能です)、APPはいくつかの変数を変更します。私は別のスレッドにこのリスナーを置くべきですか? – serwus

+0

リスナを別のスレッドに置くことはできませんが、このリスナを実装するクラスを配置して別のスレッド –

+0

に実行することができます。それは大いに役立ちます。ありがとう! – serwus

関連する問題