DataInputStream.available(),在Android 4.2上阻止BluetoothSocket执行,但在4.4上不阻止执行

DataInputStream.available(),在Android 4.2上阻止BluetoothSocket执行,但在4.4上不阻止执行,android,bluetooth,rfcomm,Android,Bluetooth,Rfcomm,是否应该使用这个available()函数来检查流中是否有数据,以及在某些情况下是否会阻止执行?我正在使用这段代码(设备可用且已配对): 连接通常是成功的(我有蓝牙模块,其中led二极管指示有效的rfcomm连接)。available()函数在android 4.4手机上的工作方式与我预期的一样,但在android 4.2上它只是阻塞(例如,我在available()和下一行的第行上设置了断点,程序不会传递到下一行)。当我在手机或取消配对设备中关闭蓝牙时,它会返回 socket = device

是否应该使用这个available()函数来检查流中是否有数据,以及在某些情况下是否会阻止执行?我正在使用这段代码(设备可用且已配对):

连接通常是成功的(我有蓝牙模块,其中led二极管指示有效的rfcomm连接)。available()函数在android 4.4手机上的工作方式与我预期的一样,但在android 4.2上它只是阻塞(例如,我在available()和下一行的第行上设置了断点,程序不会传递到下一行)。当我在手机或取消配对设备中关闭蓝牙时,它会返回

socket = device.createInsecureRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
socket.connect();
InputStream inStream = socket.getInputStream();
DataInputStream dataInStream = new DataInputStream(inStream);
if(dataInStream.available()) {
  Log.i("","available");
}