BluetoothSocket - 连接超时

0 android bluetooth

有没有办法将连接超时设置为BluetoothSocket?

如果我的设备处于脱机状态,则连接过程需要几秒钟,然后返回错误.我需要将超时设置为1秒.有可能的?

BluetoothSocket socket = device.createRfcommSocketToServiceRecord(APP_UUID);
// socket.setProxyConnectionTimeout(1000); <- some like this
socket.connect();
Run Code Online (Sandbox Code Playgroud)

BluetoothSocket类有PROXY_CONNECTION_TIMEOUT,但从未使用过......感谢您的回答.

BTW:

我尝试这样的:

socket.connect();
Thread.sleep(1000);
socket.close(); // but socket is not closed & still connecting
Run Code Online (Sandbox Code Playgroud)

小智 5

您无法更改BluetoothSocket.connect()的超时.作为文件:

此方法将阻塞,直到建立连接或连接失败.如果此方法在没有异常的情况下返回,则此套接字现在已连接. 解决方法.

例如:超时5秒.使用CountDownTimer检查连接是否完成(成功还是失败).5秒后,如果连接不完整,则使用BluetoothSocket.close()取消.

作为BluetoothSocket文档:

close()可用于从另一个线程中止此调用.