告诉两个Android蓝牙设备是否已经不再实际连接到蓝牙插座

时间:2011-08-31 22:44:08

标签: android bluetooth

在我的应用程序中,我有一个服务,它运行一个读取/写入BluetoothSocket的线程。如果我在一台设备上显式关闭连接,则另一台设备的线程会立即抛出IOException。这是理想的,因为我可以判断连接何时丢失。

但是,当设备距离很远时(超出蓝牙范围),线程似乎没有注意到。它不会抛出任何异常,并且似乎处于正常的连接状态。套接字仅在收到短信时写入。因此,也许当没有收到短信时,没有尝试读/写套接字,因此没有抛出异常。

如果设备距离太远,我怎么知道何时关闭连接?也许使用定时器定期尝试写入套接字会强制抛出异常?

1 个答案:

答案 0 :(得分:1)

蓝牙试图通过增加发射机功率来保持连接。最好的办法是制作一个计时器,看看他们是否不再进行通信。