Android Bluetooth
コミュニケーションチュートリアルのリンクまたはヒントを教えてください。 BluetoothChatの例を参照するように言わないでください。デバイスを検出して接続する方法しか理解できませんが、Bluetoothを介してデータを送受信する方法はわかりません。
私は実際にAndroidおよび埋め込みBluetooth
デバイスプロジェクトに取り組んでいます。私を助けてください。
ブルートゥース通信のために他の人があなたに提案したように、私はまた次のリンクを使用しました。
http://developer.Android.com/guide/topics/connectivity/bluetooth.html
必要なのはクラスBluetoothChatService.Java
だけです
このクラスには次のスレッドがあります。
BluetoothChatServiceの開始関数を次のように呼び出すと:
mChatService.start();
スレッドの受け入れを開始します。つまり、接続の検索を開始します。
今、あなたが電話するとき
mChatService.connect(<deviceObject>,false/true);
ここで、最初の引数はペアのデバイスリストから取得できるデバイスオブジェクトです。デバイスをスキャンすると、範囲内のすべてのデバイスが取得され、そのオブジェクトをこの関数に渡すことができます。
connect
関数は、接続スレッドを開始し、受け入れスレッドを実行しているデバイスを探します。
そのようなデバイスが見つかると、受け入れスレッドと接続スレッドの両方がBluetoothChatServiceの接続された関数を呼び出します。
connected(mmSocket, mmDevice, mSocketType);
このメソッドは、両方のデバイスで接続されたスレッドを開始します。このソケットオブジェクトを使用して、接続されたスレッドは、他のデバイスへの入力および出力ストリームを取得します。また、whileループでinputstreamのread
関数を呼び出して、他のデバイスがメッセージを送信するたびにこの読み取り関数がそのメッセージを返すように、常に他のデバイスから読み取りを試みます。
BluetoothChatServiceには、byte[]
を入力として受け取り、接続されたスレッドでwriteメソッドを呼び出すwrite
メソッドもあります。
mChatService.write("your message".getByte());
接続されたスレッドのwriteメソッドは、このバイトデータを他のデバイスの出力ストリームに書き込むだけです。
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);
}
}
2つのデバイス間で通信するには、mChatServiceで書き込み関数を呼び出して、他のデバイスで受信するメッセージを処理します。