0

私はBT接続を含むプロジェクトに取り組んでいます。Nexus S、Nexus Galaxy などの携帯電話でテストを行ったところ、すべて問題なく動作しました。問題はHTCの欲望にあります。まず、ポート経由でPCに接続する必要があるため、リフレクションを使用します

Method m = device.getClass().getMethod("createRfcommSocket",
            new Class[] { int.class });
BluetoothSocket socket = (BluetoothSocket) m.invoke(device, port);
socket.connect();

socket.connect() は、socket.close() と同様に、スレッドを永久にフリーズします。また、Android のログから、奇妙なメッセージが表示されます。

USERIAL_Ioctl: BT_Sleep、USERIAL_IO_BT_WAKE_DEASSERT

再起動は役に立ちませんでした。しかし奇妙なことに、その問題は時々再現可能です。

コメントありがとうございます。

4

1 に答える 1

0

回避策があります。Socket.connect() は別のスレッドから呼び出す必要があります。

スレッドの実行をブロックする場合は、Socket.close(); を使用して停止できます。

于 2012-08-22T13:00:37.387 に答える