蓝牙套接字连接

4

如何知道BluetoothSocket是否仍连接到端点?如何检测套接字是否已被端点断开连接?

谢谢。

1个回答

2
在我的应用程序中,我会跟踪输入/输出错误。如果成功的read()发生,则我会重置计数器。如果错误计数器足够高(通常是4-5),则我认为连接已断开,并继续拆除并重新构建它。
SDK提到了状态更改意图,但我不清楚它是指特定的连接还是蓝牙适配器本身here

可选地,您的应用程序还可以侦听ACTION_STATE_CHANGED广播意图,每当蓝牙状态发生更改时,系统都会广播此意图。此广播包含额外字段EXTRA_STATE和EXTRA_PREVIOUS_STATE,分别包含新的和旧的蓝牙状态。这些额外字段的可能值为STATE_TURNING_ON、STATE_ON、STATE_TURNING_OFF和STATE_OFF。侦听此广播可以检测在应用程序运行时对蓝牙状态所做的更改。


嗨,Brad。看起来没有其他方法可以让它工作:(。我认为可能有另一种解决方案,但是到目前为止我没有得到任何结果。感谢您的回复。 - hara
感谢您的跟进。我也很惊讶,没有更好的(内置)处理方式(如广播)。 - Brad Hein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接