如何通过代码在通话期间启用Android扬声器?

时间:2015-11-19 04:14:22

标签: android volume phone-call speaker

这个问题之前已在本网站上被问过并回答了两次,但该代码似乎根本不适用于现代手机。我正在使用Android 4.2和Android 4.3,但似乎都没有。

我在通话期间通过媒体播放器播放MP3,它工作正常,但歌曲和通话都是通过语音扬声器传来的。如果我按"扬声器"他们都继续通过扬声器播放。 我需要这种效果,但不必自己按

    AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    audioManager.setMode(AudioManager.MODE_IN_CALL);
    audioManager.setSpeakerphoneOn(true);

     <uses-permission android:name="android.permission.RECORD_AUDIO" />
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

这被建议作为关于S.O的其他问题的解决方案,但它根本不起作用。它应该,代码很好,但它根本不对音频做任何事情。

思想?

3 个答案:

答案 0 :(得分:3)

我解决了。我创建了一个线程,在&#34; While(true)&#34;中不断运行上面三行代码。效果很好。

答案 1 :(得分:0)

使用此代码:

    AudioManager audioManager = (AudioManager) yourActivity.getSystemService(Context.AUDIO_SERVICE);
                    audioManager.setMode(AudioManager.MODE_IN_CALL);
                    audioManager.setSpeakerphoneOn(true);

答案 2 :(得分:0)

This在我的InCallService调用setAudioRoute中为我工作:

setAudioRoute(ROUTE_SPEAKER);