I want to access rear and front speakers of android phones, programmatically.
2 Answers
You can acquire either a rear speaker or a front earpiece at time.
If no accessory connected;
Use audioManager.setMode(AudioManager.MODE_IN_CALL);
& audioManager.setSpeakerphoneOn(false);
to use front speaker/earpiece. But this would play audio in earpiece not on speaker. To use rear speaker, useaudioManager.setMode(AudioManager.MODE_NORMAL);
& audioManager.setSpeakerphoneOn(true);
If accessory connected;
Use audioManager.setMode(AudioManager.MODE_IN_CALL);
& audioManager.setSpeakerphoneOn(false);
to use front speaker/earpiece. But this would play audio in earpiece not on speaker. To use rear speaker, useaudioManager.setMode(AudioManager.MODE_IN_CALL);
& audioManager.setSpeakerphoneOn(true);
Note: Make sure audioManager.setWiredHeadsetOn(boolean on)
and audioManager.setBluetoothScoOn(boolean on)
set to false.

- 516
- 7
- 13
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
if(!audioOption)
audioManager.setMode(AudioManager.MODE_IN_CALL);
else
audioManager.setMode(AudioManager.MODE_NORMAL);

- 16,375
- 3
- 47
- 62

- 181
- 2
- 10