在使用
但不幸的是,根据我的Android Studio,
显然,
device.createRfcommSocketToServiceRecord(MY_UUID)
创建的蓝牙套接字上,当一段时间内没有数据到达时,我希望能运行一些代码,但仍然能够在数据到达时立即处理字节。 .setSoTimeout的说明正好解释了我想要做的事情:
因此,看起来这是在将此选项设置为非零超时后,与此套接字关联的InputStream上的read()调用仅会阻塞此时间量。如果超时,将引发java.net.SocketTimeoutException,但Socket仍然有效。
catch
语句中放置我的代码的完美机会。但不幸的是,根据我的Android Studio,
.setSoTimeout
无法在蓝牙套接字上工作。如何在没有这种方法的情况下实现这种功能?显然,
Thread.sleep
也不是一个选项,因为我不能锁定线程。