0
是我的代码:Android的蓝牙插座.connect()错误
Thread connectThread = new Thread(new Runnable() {
@Override
public void run() {
try {
boolean gotuuid = btDevices.getItem(position)
.fetchUuidsWithSdp();
if (gotuuid){
UUID uuid = btDevices.getItem(position).getUuids()[0]
.getUuid();
mbtSocket = btDevices.getItem(position)
.createRfcommSocketToServiceRecord(uuid);
mbtSocket.connect();
} else {
Log.e("ID22", "There is no uuid");
}
} catch (IOException ex) {
runOnUiThread(socketErrorRunnable);
try {
mbtSocket.close();
} catch (IOException e) {
// e.printStackTrace();
}
mbtSocket = null;
return;
} finally {
runOnUiThread(new Runnable() {
@Override
public void run() {
finish();
}
});
}
}
});
connectThread.start();
}
当我尝试使用mbtSocket.connect();
连接到蓝牙soccket停止并抛出socketErrorRunnable
例外。你有什么想法如何解决这个问题?我搜索了一下,但没有为我工作。
您可以张贴在此异常详细的错误日志? – Mackovich
java.io.IOException:读取失败,套接字可能已关闭或超时,请阅读ret:-1 其未打印任何文件,只要进入catch语句 – Tito
您尝试连接的设备不在范围内或关闭或无法访问。在最后一种情况下,主要是因为在RFCOMM连接中使用的UUID不正确,或者与目标设备的蓝牙内部的注册服务不对应。顺便说一句,目标设备是什么? – Mackovich