Android: Forcing external microphone (jack input 3.5mm) to stay on

user2819360 picture user2819360 · Oct 8, 2013 · Viewed 14.9k times · Source

How do I force the Android system to select the 3.5mm Jack as my microphone source? I am using the AudioRecord class to do the recording.

I am using an external Microphone. When it is detected all works well, but sometimes the external microphone is not detected automatically. A TRRS splitter (cheap $3 thing) is used to split the 3.5mm Jack into separate Mic and Headphone jacks (I need simultaneous recording and playback).

The AudioManager.setWiredHeadsetOn() is deprecated and instructions say not to use it.

1) Do I maybe need additional external hardware to provide the correct microphone impedance?

2) Can I force the input in code?

3) Can a custom ROM archive audio control at this level - maybe this is the best option?

Thanks

Answer

user2861759 picture user2861759 · Oct 9, 2013

It is very likely a hardware issue. Samsung phones seem to require a microphone with impedance of around 1.0k - 1.5k Ohm. Try modifying the input mic line by adding a series resistor to raise the impedance. Check out this link for details on how to do this: xdadevelopers - External mic on Galaxy devices