2012-09-24 23 views
50

誰でも私にAndroidのBluetooth通信チュートリアルのリンクやヒントを教えてもらえますか? BluetoothChatの例を参照するように教えてください。私はデバイスを発見して接続する方法しか理解できませんが、Bluetooth経由でデータを送受信する方法はわかりません。Android Bluetoothの例

私は実際にはAndroidの埋め込みデバイスプロジェクトBluetoothに取り組んでいます。 は、Android開発者のページがtutorialsを持っており、Bluetooth機能を使用する方法について説明します。..

+2

データを送信するBluetoothChatの例をベースにすることができます。コードを見ると、テキストメッセージ文字列はブルートゥース経由で送信される前にbyte []に​​変換されます。したがって、あなたのデータをバイト[]に変換し、それを送信してください。 –

+0

IMHOのチャットの例は、チャットや少し速いコミュニケーションのためだけに良いです。毎秒100以上のメッセージを送信する必要がある場合は、役に立つかどうかわかりません。 – Ewoks

答えて

5

を私を助けてください:
私はこのことができます願っています。

+7

私はこれを介して私はデバイスを発見することができますが、それらを接続するが、どのように送受信し、BTでデータを受信して​​いる? – Pratik

9

私は他の人のように次のリンクをも使用しているBluetooth通信のためにあなたを示唆しています。

を接続された接続受け入れ:

http://developer.android.com/guide/topics/connectivity/bluetooth.html

事はあなたが必要とするすべてではBluetoothChatService.java

このクラスには、次のスレッドがいるクラスでありますあなたのようBluetoothChatServiceの開始関数を呼び出すとき

は今:

mChatService.start(); 

それは接続のために探し始めることを意味しますスレッドを受け付け開始します。あなたがここに

mChatService.connect(<deviceObject>,false/true); 

最初の引数を呼び出す今

を使用すると、ペアリングデバイスのリストから取得することができたり、デバイスをスキャンするとき、あなたがこれにそのオブジェクトを渡すことができます範囲内のすべてのデバイスを取得するデバイスオブジェクトであります2番目の引数は、安全な接続または安全でない接続を作成するブール値です。

connect機能はスレッドを接続し始めます。スレッドは、受け入れスレッドを実行しているデバイスを検索します。

そのようなデバイスが見つかった場合、スレッドを受け入れ、糸を結ぶの両方がBluetoothChatServiceに接続された機能を呼び出す:

connected(mmSocket, mmDevice, mSocketType); 

この方法は、デバイスの両方に接続されたスレッドを開始: このソケットオブジェクト接続スレッドを使用して入力を取得します他の装置にストリームを出力する。 そして、whileループの中で入力ストリームのreadを呼び出すと、他のデバイスからメッセージを送信するたびに常にこのメッセージを返すように、他のデバイスからの読み取りを常に試みます。

BluetoothChatServiceには、入力としてbyte[]を受け取り、接続されたスレッドで書き込みメソッドを呼び出すwriteメソッドもあります。

mChatService.write("your message".getByte()); 

接続されたスレッドの書き込みメソッドは、このバイトデータを他のデバイスの出力ストリームに書き込みます。

public void write(byte[] buffer) { 
    try { 
     mmOutStream.write(buffer); 
    // Share the sent message back to the UI Activity 
    // mHandler.obtainMessage(
    // BluetoothGameSetupActivity.MESSAGE_WRITE, -1, -1, 
    // buffer).sendToTarget(); 
    } catch (IOException e) { 
    Log.e(TAG, "Exception during write", e); 
    } 
} 

は今だけmChatService上の書き込み機能を呼び出す2つのデバイス間で通信し、他のデバイス上で受信するメッセージを処理します。

+0

誰かがこのチャットサービスの問題に直面したことがありますか、それともデバイスと接続できない、または接続していてすぐに切断されますか? – Jacob

+0

あなたの説明は私の一日を保存しました!ありがとうございました! –

1

OPがまだ回答を受け付けていないので、私は特定のデバイスに接続するためのサンプルアプリをいくつか提供します。コードサンプルの品質を保証するものではありませんが、センサーデバイスに接続するアプリの意味で、実際のコードを探している場合は、読み込みを行い、デバイスは、これらを助けるかもしれません:

AndroiDAQは、データ取得アプリケーションのプロトタイプ用ボードです。ビルダー、Rick Fluckは、GithubにサンプルのオープンソースAndroidアプリを提供しています。 AndroiDAQService.javaファイルを探します。一番下のRun()メソッドは、DAQからの読み取りと書き込みの両方を示します。 (YMMV。完全なアプリはApp Storeから無料でダウンロードできますが、頻繁にクラッシュすることがありますが、DAQボードがかなりの頻度で外部出力を出している可能性があります。奇妙な余分な文字はそのような理由でクラッシュしません)。

テキサスインスツルメンツは、少数の組み込みセンサーを搭載した安価なBluetooth SensorTagを販売しています。タグを扱うためにa free SDKを提供しています。IIRCには、AndroidアプリとiOSアプリの両方のソースコードが含まれています。しかし、私たちが購入して以来、彼らは「伝統的な」Bluetoothとはまったく異なる低エネルギーBluetooth Smartテクノロジーを使用するほぼ同じ名前の新しいデバイスを持ち出しているように見えます。

3

Androidデバイスと埋め込み型Bluetoothデバイス間の通信を処理する方法を示す良いオープンソースプロジェクトがあります。

https://github.com/akexorcist/Android-BluetoothSPPLibrary

+1

そのリンクは壊れています。これは[working link](https://github.com/akexorcist/Android-BluetoothSPPLibrary)です。 – Shahar