我想检查BluetoothSocket是否开启运行..... 这是我的工作:
首先,我从我的BluetoothSocket获取一个InputStream,我想用该InputStream执行一些操作,如果发生IOException,我的程序可以确定套接字已断开.....并确保套接字连接后我想要从中读取一些数据。
为了确保我调用available()
默认返回0或多个字节....如果返回值为0,我的读操作会抛出IOException。
以下是我的问题。
available()
是阻止I / O调用还是异步调用?
仅当我在连接时从我的设备提供一些输入时返回值> 0,但情况并非总是如此。我是否有任何错误,允许读取是否有0个可用字节?怎么避免这个?
答案 0 :(得分:0)
首先,你必须连接蓝牙服务器。使用connect()进行连接,此方法将阻塞,直到建立连接或连接失败(导致异常)。因此,请确保在单独的线程上运行它。
public void run() {
try {
socket.connect();
InputStream in = socket.getInputStream();
//socket connected, inputStream can be used
//Bluetooth
} catch (IOException e) {
//Socket is refused connection with the server.
}
}