我正在努力寻找一种方法来检测Android 2.1的蓝牙耳机连接和断开事件。在API Level 11中,我看到有一些明确的事件,但是在API level 7中该如何实现呢?我只想知道当用户连接或断开一个可以播放音频的耳机或汽车音响时,这样我就可以暂停正在播放的声音。
不确定这在2.1版本中是否有效,但它适用于2.2和2.3。
它将捕获蓝牙耳机连接状态的变化:
声明以下意图过滤器
<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);
}
将int保存为静态变量。随时访问它以了解BT音频是否连接(1)/断开连接(0)。不太美观,但能完成工作。
这看起来是一个不错的选择来检测蓝牙的连接和断开。
如果这个方法不起作用,另一个好的选择是在一个服务中设置一个计时器,调用AudioManager.isBluetoothA2dpOn()
来检查蓝牙是否连接或断开。
android.bluetooth.headset.action.STATE_CHANGED
操作设置一个 BroadcastReceiver
。Intent 的额外信息 android.bluetooth.headset.extra.STATE
包含当前状态(未连接、正在连接、已连接)。更多信息请参考 Android源代码。