安卓蓝牙 - 判断已配对设备是否处于“开启”状态

3

我希望确定配对设备是否处于活动状态。我并不需要连接它,只需确定它是否有心跳。

在尝试连接蓝牙套接字时,我遇到了一系列IO错误,但我不确定我是否真的需要连接它。


你解决了这个问题吗?当我尝试验证我知道的蓝牙设备是否准备好进行通信时,我也遇到了IOExceptions。我的方法是尝试连接一个套接字,但它并不影响我收到的错误消息:“服务发现失败”。 - SEngstrom
2个回答

2
假设您正在使用Android 如果您有一个BluetoothDevice对象与此设备配对,您可以注册监听广播操作 - ACL_CONNECTED或ACL_DISCONNECTED,并跟踪连接状态。

0
如果您想查找BT耳机当前是否处于活动连接状态(音频正在路由到它),请执行以下操作:
声明以下意图过滤器。
        <intent-filter >
            <action android:name="android.bluetooth.headset.action.AUDIO_STATE_CHANGED" />
        </intent-filter>

在你的接收器中的onReceive方法中检查:

if ("android.bluetooth.headset.action.AUDIO_STATE_CHANGED".equals(intent.getAction())) {
  headsetAudioState = intent.getIntExtra("android.bluetooth.headset.extra.AUDIO_STATE", -2);
}

将整数保存为静态变量。随时访问以了解是否连接BT音频(1)/断开连接(0)。这并不美观,但可以完成工作。

同时查看: https://github.com/android/platform_frameworks_base/blob/gingerbread/core/java/android/bluetooth/BluetoothHeadset.java


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