Cannot speak to front microphone with ordinary 3-pin headset jack inserted?

xaueious

Administrator
Staff member
Jul 9, 2010
3,483
436
I use the S7 as a phone, but when I plug any 3.5mm 3pin plug into my S7, I find that I cannot speak through the front microphone.

Or is there a workaround?
 
So you're saying any normal stereo headset plug (3-pin) vs. a stereo phone-headset (4-pin with built-in mic) is cutting out the S7's built in mic? My only suggestion if you must absolutely use the onboard mic would be to use a mono (1 or 2-speaker) headset without mic and see if that works. Otherwise your only option is just using a stereo phone headset and use the headset's built-in mic or a bluetooth headset.
 
I don't have a mono headset. I doubt it will make a difference here though...

With all my other cellphones, it detects when I have a 4-pin jack plugged in and reroutes audio to the headset, and doesn't do that for the 3-pin.

Can someone confirm this behavior / bug?
 
I believe I've run into this before as well using a regular cheapo set of headphones. Just one time when I was playing around with voice search.
 
i'm pretty sure it's like that for most of these types of phones that you would try to use a regular pair of headphones with, thats why they come with those kinds of headsets in the box, though they suck, they do have a microphone on them, and inserting regular headphones into the phone defeats the purpose of a microphone because it's not made to work with regular headphones, my suggestion either buy a nice set of headphones with a microphone or a pair of wrap around bluetooth headphones, but to my knowledge it's like that with every phone because they are meant to be used as that, a phone. i have the HTC HD2 w/ Android on it and same problem there if you try regular headphones, reads as a headset but obviously no way of speaking.
 
Manufacturers sometimes used differing 4 band 3.5mm configurations and they often don't work with other devices. When you plug in, the internal mic connect is re routed to the headset. Get inside the S7, hot wire the mic connect and cut your headset mic cable and you're there. But drastic though!
 
Pretty sure that is not how cellphones work. At least for my Acer Liquid E and HTC Dream (G1). Also tried the Galaxy S.

It only routes the microphone with a 4-pin plug. With a 3-pin, itis supposed to retain the speakerphone microphone on the device.

The problem is that the Huawei defaults as if there were no speakerphone mode, so they screwed up some coding there.
 
Well, I have a Nokia that won't work with anything but Nokia headsets!
 
The 4 band configuration is not really working with my Shure i2c, so you were spot on with that. I haven't investigated this in detail, but that was going to be my other option. I'll revisit this again later...
 
I'm trying to use a 3.5 motorola headset (with mic; 4 pin?) that works with a bunch of other devices. When I use it with the S7, it immediately hangs up the call. If I start the call with the headset in the jack, it hangs up after connecting. If I put it in the jack in after the call has connected, it hangs up right after inserting it.
 
Finally bothered to logcat this issue.

With an ordinary 3-pin adapter (cheap headphones) plugged into the headphone jack:

Code:
V/HeadsetObserver( 1120): Headset UEVENT: {SUBSYSTEM=switch, SWITCH_STATE=1, DEVPATH=/devices/virtual/switch/h2w, SEQNUM=2403, ACTION=change, SWITCH_NAME=Headset}
V/HeadsetObserver( 1120): Intent.ACTION_HEADSET_PLUG: state: 1 name: Headset[B] mic: 1[/B]
...

Relevant source code: android.git.kernel.org Git - platform/frameworks/base.git/blob - services/java/com/android/server/HeadsetObserver.java

Referencing FM Radio on 2.x ROMs - An Idea - xda-developers
The value of /sys/class/switch/h2w/state when the 3-pin is plugged is '1' regardless of type.

Maybe this is a kernel side issue with the headset file?

Comparing to the way acer modified the headset, it seems that Huawei didn't touch the way it handles headsets without microphones, as evidenced by the largely unmodified https://github.com/razor950/huawei_s7_kernel/blob/master/arch/arm/mach-msm/rpc_server_handset.c used.

I guess there's this for reference?

I doubt Huawei is fixing this for their 2.2 release. I'll move this to development...
 
Under rpc_server_handset.c

You can force the value of /sys/class/switch/h2w/state always to 2 during a headset trigger. This is equivalent of headset no mic, and as a result never disables your S7's front microphone if plugged in. Android framework deals with this built-in, even though Huawei didn't or couldn't implement this in the kernel/hardware.

The problem with this is that it is a kernel workaround right now, and I do not know how to fix it in other ways.


So now you can use a 3-pin audio jack into your car stereo and still be able to speak into your S7.
 
Back
Top