如何在分离耳机时停止音乐播放器?

时间:2012-06-25 18:11:10

标签: android

当用户拔下耳机(有线和蓝牙)时,我想停止当前正在运行的MusicPlayer。

我遇到了几个使用以下内容的帖子:

isWiredHeadsetOn(), isBluetoothA2dpOn()
建议

但Android文档称isWiredHeadsetOn()已被弃用。我应该选择哪种替代方案?

由于

4 个答案:

答案 0 :(得分:2)

来自文档:

isWiredHeadsetOn() - 不推荐使用此方法。仅用于检查耳机是否已连接。

听起来 仍然建议您正在做什么,尽管文档措辞不佳

答案 1 :(得分:1)

我刚看了一篇有人建议注册ACTION_HEADSET_PLUG广播事件的帖子。

您显然可以从以下方式获取它的状态:intent.getIntExtra(“state”,0));

答案 2 :(得分:1)

我在我的应用中使用AudioManager.ACTION_AUDIO_BECOMING_NOISY事件。 创建自定义广播接收器:

private class HeadsetIntentReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context cntx, Intent intent) 
    {
        String action = intent.getAction();

        if(action.compareTo(AudioManager.ACTION_AUDIO_BECOMING_NOISY) == 0)
        {
        }
    }
};  /* end HeadsetIntentReceiver  */

然后注册接收者:

headsetReceiver = new HeadsetIntentReceiver();
mIntentFilter = new IntentFilter();
mIntentFilter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
mParentActivity.registerReceiver(headsetReceiver, mIntentFilter);

不要忘记稍后取消注册。

答案 3 :(得分:0)

根据它的文档,它已被弃用,但建议仅用于检查耳机是否已连接。应该没问题。