我正在开发一个简单的应用程序,它应该在扬声器电话和有线耳机之间切换,以在按钮单击事件上播放音频。我正在尝试使用 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/

10-12 06:01