2

BluetoothServerSocket.accept()着信 Bluetooth 接続を受け入れるために使用しています。BluetoothServerSocket.accept()着信接続またはエラー (スロー) までブロックすることが知られていますIOException。次を除いて、すべて正常に動作します。 を呼び出した後に Bluetooth が無効になっているBluetoothServerSocket.accept()場合、例外は発生しません。その結果、スレッドはclose()が呼び出されるまで永久にブロックされます。Bluetoothアダプタがオフのときに接続を受け入れる方法は絶対にないため、それは私には意味がありません。

でそれを解決する醜い方法があり、イベントBluetoothSocket.accept(int timeout)をリッスンして、オフのときに受け入れスレッドを呼び出すこともできます。しかし、これは単純なイベントとしてはハックすぎるように思えます。BluetoothAdapter.ACTION_STATE_CHANGEDclose()

BluetoothServerSocket.accept()Bluetooth アダプターが無効になった後、よりきれいに戻る方法はありますか?

4

0 に答える 0