androidmicrophoneheadsetandroid-audiomanager

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


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


Solution

  • 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