我正在挠头,试图找到一种方法来检测Android 2.1的蓝牙耳机连接和断开事件。我在API Level 11中看到有一些显式的API,但是在API level 7中如何做到这一点呢?我只想知道用户何时连接或断开能够播放音频的头戴式耳机或汽车立体声音响,以便我可以暂停正在播放的声音。
发布于 2011-07-11 17:05:59
没有公共API,这是作者使用反射使用私有API的answer might help。
作者还发表了一篇评论,介绍了他是如何让它工作的。
发布于 2011-07-17 09:34:21
This看起来是检测蓝牙连接/断开的一个很好的选择。
如果这不起作用,另一个好的选择是在调用AudioManager.isBluetoothA2dpOn()
的服务中设置一个计时器,以检查蓝牙是否已连接或断开。
发布于 2012-08-07 00:56:41
不确定这在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),请随时访问它。不是很漂亮,但能完成任务。
https://stackoverflow.com/questions/6619317
复制相似问题