В Android 4.1 и более при совершении звонка телефон автоматически отключает громкую связь. Итак, что вам нужно сделать, это добавить громкую связь в приемник, который прослушивает выполняемый вызов, когда состояние «offHook», и даже поставить 0,5 секунды с задержкой для включения динамика так:
final Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
MainActivity.shouldTurnSpeakerOn = false;
MainActivity.shouldTurnSpeakerOff = true;
Log.d("incoming_call","speaker_on");
}
}, 500);
Не забудьте добавить это в прослушиватель состояния телефона. И запустить громкую связь, когда состояние IDLE (необходимо для более ранних версий).
Удачи.