当用户拔下耳机(有线和蓝牙)时,我想停止当前正在运行的MusicPlayer。
我遇到了几个使用以下内容的帖子:
isWiredHeadsetOn(), isBluetoothA2dpOn()
建议。
但Android文档称isWiredHeadsetOn()已被弃用。我应该选择哪种替代方案?
由于
答案 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)
根据它的文档,它已被弃用,但建议仅用于检查耳机是否已连接。应该没问题。