Android,BluetoothSocket - 如何判断连接是否存在或者是否必须调用connect?

时间:2011-05-18 23:17:37

标签: android sockets bluetooth rfcomm

您好 我正在尝试实现一个蓝牙库,在其中我想连接一个rfcomm套接字,然后在所有调用上重用它。 我想知道它是否已连接,以便知道我是否应该调用connect方法。 我在蓝牙套接字的源代码中找不到任何内容,因为它是所有本机调用,并且API中没有定义isConnected方法... 有没有人有这方面的经验?

3 个答案:

答案 0 :(得分:1)

我认为您将拥有一个成员变量来维护您的连接状态。在成功连接上将其设置为true,启动一个循环,该循环始终从套接字输入流中读取字节,如果在该线程上获得IOException,请将您的标志设置为false。

答案 1 :(得分:1)

我回答了类似的问题here。从API Level 14开始,BluetoothSocket类中有一个isConnected方法可用。对于较低的API级别,您可以打开套接字,完成工作并再次关闭它。但是,您可能需要考虑一些事情,更多的是在链接的答案中。

答案 2 :(得分:1)

isConnected()永远不适合我。 尝试这样的事情:

try {
  mSocket.connect()
} catch (IOException e) {
  // Create a new socket
  // mSocket.connect();
}