听筒和免提的切换并不是一句简单的setSpeakerphoneOn
/**
* 外放模式和听筒模式 切换
*
* @param on
*/
private void changeToincall(boolean on) {
if (on) {//外放模式
mAudioManager.setMode(AudioManager.MODE_NORMAL);
mAudioManager.setSpeakerphoneOn(true);
button_speakeron.setText("外放模式");
} else {//听筒模式
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
} else {
mAudioManager.setMode(AudioManager.MODE_IN_CALL);
}
mAudioManager.setSpeakerphoneOn(false);
button_speakeron.setText("听筒模式");
}
}
文章参考:
Android听筒模式和免提模式的切换_android audio mode_normal 免提是什么模式-CSDN博客