嗨,我正在尝试实现一个蓝牙库,我想在其中连接一次 rfcomm 套接字,然后在所有调用中重用它。我想知道它是否已连接,以便知道我是否应该调用connect方法。我在蓝牙套接字的源代码中找不到任何东西,因为它都是本机调用,并且 API 中没有定义 isConnected 方法......有人有这方面的经验吗?
问问题
7580 次
3 回答
2
我在这里回答了一个类似的问题。从 API 级别 14 开始,BluetoothSocket 类中有一个 isConnected 方法可用。对于较低的 API 级别,您可以打开一个套接字,完成您的工作并再次关闭它。但是,您可能需要考虑一些事情,更多的是在链接的答案中。
于 2012-07-03T08:27:03.843 回答
1
我认为您将有一个成员变量来维护您的连接状态。在成功连接时将其设置为 true,启动一个循环始终从套接字输入流读取字节的线程,如果在该线程上收到 IOException,请将您的标志设置为 false。
于 2011-05-19T00:23:48.183 回答
1
isConnected() 从不适合我。尝试这样的事情:
try {
mSocket.connect()
} catch (IOException e) {
// Create a new socket
// mSocket.connect();
}
于 2013-06-08T01:43:16.977 回答