我正在开发一个简单的应用程序,它应该在扬声器电话和有线耳机之间切换,以在按钮单击事件上播放音频。我正在尝试使用 isWiredHeadsetOn() 函数,但它表示 Android API lvl 5 以后不推荐使用此函数。那么如何通过有线耳机检查当前音频是否正在播放,以便我可以将其重定向到电话扬声器?
注意: 我在耳机插入手机的 3.5 毫米插孔的情况下启动我的应用程序。
到目前为止,这是我对代码的尝试:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audio_re_direct);
redirect = (Button)findViewById(R.id.redirect);
final AudioManager audio =(AudioManager)getApplicationContext().getSystemService(AUDIO_SERVICE);
redirect.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(audio.isWiredHeadsetOn())
{
audio.setWiredHeadsetOn(false);
audio.setSpeakerphoneOn(true);
Toast.makeText(getApplicationContext(), "SpeakerPhone On", Toast.LENGTH_LONG).show();
redirect.setText("Turn on headset");
}
else
{
audio.setSpeakerphoneOn(false);
audio.setWiredHeadsetOn(true);
Toast.makeText(getApplicationContext(), "Wired Headset On", Toast.LENGTH_LONG).show();
redirect.setText("Turn off headset");
}
}
});
}
但该应用程序根本没有切换。最初它检测到有线耳机存在,显示 Toast 消息 SpeakerPhone On,就是这样。它不会在两者之间切换。
有人请帮助我完成这项工作。谢谢。
最佳答案
您必须为 ACTION_HEADSET_PLUG Intent 注册一个接收器并创建一个接收器类来捕获该广播,您可以实现自己的逻辑
please check this
关于android - 如何检查和重定向有线耳机和免提电话之间的音频?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20947960/