device.createRfcommSocketToServiceRecord(MY_UUID)
で作成されたBluetoothソケットでは、何も届かないときに一定の時間が経過した後、コードを実行しても、到着するとすぐにそのバイトを処理できるようにしたい。AndroidのBluetoothソケットにタイムアウトを設定する
.setSoTimeout
のdescriptionは私に喜んで正確に何を説明します。
ゼロ以外のタイムアウト、読み取り(に設定このオプションを指定すると)このソケットに関連付けられたInputStreamの呼び出しが唯一のためにブロックしますこの時間量。タイムアウトが経過すると、Socketはまだ有効ですが、java.net.SocketTimeoutExceptionが発生します。
だから、私のコードをcatch
のステートメントに入れるのに最適な機会のようです。
しかし残念ながら.setSoTimeout
は私のAndroidのメーカーによるBluetoothのソケットでは動作しません。どのように私はそのような方法なしにそのような機能を実装できますか?私はスレッドをロックすることはできませんので
Thread.sleep
は、また明らかにオプションではありません。
ハンドラを使用してこれを行うかどうかは、thread.sleepを置き換えることを意味します。 –