如果使用这个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");
}
连接通常是成功的(我有蓝牙模块,其中led二极管指示有效的rfcomm连接)。可用的()函数可以像我预期的那样在Android 4.4的手机上工作,但是在Android 4.2上它只是阻塞(例如我设置断点与available()和下一行,并且程序没有传递到下一行线)。当我在手机或非配对设备中关闭蓝牙时它会返回。