如何在通话期间通过代码启用 Android 扬声器?
How do I enable the Android speaker during a call, from code?
此问题之前已在此站点上提出并回答过两次,但该代码似乎根本不适用于现代手机。我正在研究 Android 4.2 和 Android 4.3,但似乎都不起作用。
我在通话期间通过媒体播放器播放 MP3,效果很好,但歌曲和通话都是通过语音扬声器发出的。如果我按 "Speaker",它们都会继续通过扬声器播放。 我需要那种效果,但又不用自己按
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 上其他两个问题的解决方案,但根本行不通。它应该,代码很好,但它对音频根本没有任何作用。
想法?
我解决了。我创建了一个线程,在"While (true)"中不断运行以上三行代码。效果很好。
使用此代码:
AudioManager audioManager = (AudioManager) yourActivity.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
This 为我工作,在你的 InCallService 调用 setAudioRoute 中是这样的:
setAudioRoute(ROUTE_SPEAKER);
此问题之前已在此站点上提出并回答过两次,但该代码似乎根本不适用于现代手机。我正在研究 Android 4.2 和 Android 4.3,但似乎都不起作用。
我在通话期间通过媒体播放器播放 MP3,效果很好,但歌曲和通话都是通过语音扬声器发出的。如果我按 "Speaker",它们都会继续通过扬声器播放。 我需要那种效果,但又不用自己按
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 上其他两个问题的解决方案,但根本行不通。它应该,代码很好,但它对音频根本没有任何作用。
想法?
我解决了。我创建了一个线程,在"While (true)"中不断运行以上三行代码。效果很好。
使用此代码:
AudioManager audioManager = (AudioManager) yourActivity.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
This 为我工作,在你的 InCallService 调用 setAudioRoute 中是这样的:
setAudioRoute(ROUTE_SPEAKER);