当用户拔下耳机(有线和蓝牙)时,我想停止当前正在运行的 MusicPlayer。
我遇到了几个帖子,其中使用:
isWiredHeadsetOn(), isBluetoothA2dpOn()
建议。
但是 Android 文档说 isWiredHeadsetOn() 已被弃用。我应该使用什么替代方案?
谢谢
当用户拔下耳机(有线和蓝牙)时,我想停止当前正在运行的 MusicPlayer。
我遇到了几个帖子,其中使用:
isWiredHeadsetOn(), isBluetoothA2dpOn()
建议。
但是 Android 文档说 isWiredHeadsetOn() 已被弃用。我应该使用什么替代方案?
谢谢
从文档:
isWiredHeadsetOn()
- 此方法已弃用。仅用于检查是否连接了耳机。
听起来它仍然推荐用于您正在做的事情,尽管文档措辞不佳
我刚刚读到有人建议注册 ACTION_HEADSET_PLUG 广播事件的帖子。
您显然可以从以下位置获取它的状态:intent.getIntExtra("state", 0));
我在我的应用程序中使用 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);
不要忘记稍后取消注册。
根据它的文档,它已被弃用,但建议仅用于检查耳机是否已连接。使用应该没问题。