3

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

我遇到了几个帖子,其中使用:

isWiredHeadsetOn(), isBluetoothA2dpOn()

建议。

但是 Android 文档说 isWiredHeadsetOn() 已被弃用。我应该使用什么替代方案?

谢谢

4

4 回答 4

2

从文档:

isWiredHeadsetOn()- 此方法已弃用。仅用于检查是否连接了耳机。

听起来它仍然推荐用于您正在做的事情,尽管文档措辞不佳

于 2012-06-25T18:15:16.563 回答
1

我刚刚读到有人建议注册 ACTION_HEADSET_PLUG 广播事件的帖子。

您显然可以从以下位置获取它的状态:intent.getIntExtra("state", 0));

于 2012-06-25T18:14:57.207 回答
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);

不要忘记稍后取消注册。

于 2013-06-20T06:58:59.640 回答
0

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

于 2012-06-25T18:17:19.590 回答