2

Androidデバイスをブルートゥース対応デバイスに接続しようとすると、例外が発生します。接続していて、数分以内に例外が発生します。BLuettoth デバイス (Spp プロファイル) を使用して接続するには、使用しています

Method m;
m = mmDevice.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });

tmp = (BluetoothSocket) m.invoke(mmDevice, 1); 

このコードを使用して、デバイスに接続できます。しかし、この行 bytes = mmInStream.read(buffer) で、数分以内に例外が発生します。使うことができます

if(mmInStream.available() > 0) {
bytes = mmInStream.read(buffer);
} 

しかし、ここに条件を入れると、デバイスがまだ他のデバイスと接続されているかどうかを理解できません。例外が発生しないためです。解決策が見つからず、2日間試しました。しかし、私は解決策を見つけることができませんでした。

手伝ってくれませんか?

前もって感謝します

4

1 に答える 1

0

Bluetoothブロードキャストの後に起動したサーバーでも同じ問題が発生しました。解決策は、サーバーが BluetoothServerSocket.accept() を介して接続を確立した後にバイトを送信することでした。クライアントは、BluetoothSocket.connect() の後に 1 バイトを読み取ります。したがって、両端は同期しています。

于 2013-03-27T15:35:17.977 に答える