1

I want to access rear and front speakers of android phones, programmatically.

kapa
  • 77,694
  • 21
  • 158
  • 175
Talha Hafeez
  • 181
  • 2
  • 10

2 Answers2

0

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.

Jayesh Tembhekar
  • 516
  • 7
  • 13
0
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
if(!audioOption)
    audioManager.setMode(AudioManager.MODE_IN_CALL);
else
    audioManager.setMode(AudioManager.MODE_NORMAL);
Michal Kottman
  • 16,375
  • 3
  • 47
  • 62
Talha Hafeez
  • 181
  • 2
  • 10