BrainCrash
BrainCrash

Reputation: 13182

ACTION_HEADSET_PLUG not documented extra strange "state"?

I'm doing some test with Intent.ACTION_HEADSET_PLUG.

Giving the fact that the following code should be the one who give the responses (From com.android.server.HeadsetObserver class 2.2.1 r1):

private final void sendIntent(int headset, int headsetState, int prevHeadsetState, String headsetName) {
   if ((headsetState & headset) != (prevHeadsetState & headset)) {
        //  Pack up the values and broadcast them to everyone
        Intent intent = new Intent(Intent.ACTION_HEADSET_PLUG);
        intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
        int state = 0;
        int microphone = 0;

        if ((headset & HEADSETS_WITH_MIC) != 0) {
            microphone = 1;
       }
        if ((headsetState & headset) != 0) {
            state = 1;
        }
        intent.putExtra("state", state);
        intent.putExtra("name", headsetName);
        intent.putExtra("microphone", microphone);

        if (LOG) Slog.v(TAG, "Intent.ACTION_HEADSET_PLUG: state: "+state+" name: "+headsetName+" mic: "+microphone);
        // TODO: Should we require a permission?
        ActivityManagerNative.broadcastStickyIntent(intent, null);
    }
}

And in the documentation they say: state - 0 for unplugged, 1 for plugged.

I strangely get two different state by plugging two different headsets:

0 = unplugged

1 = Headset with microphone

2 = Headset without microphone


The question is: where the State 2 (two) come from? Can someone enlighten me?

Thanks

Upvotes: 0

Views: 1563

Answers (1)

Havoc
Havoc

Reputation: 213

I am using that extra state myself in one of my applications. One of your headsets has a mic the other doesn't. Also make sure you a plugging it in all the way, but don't break anything :)

0 - unplugged as in no headset attached to the device

1 - headset with microphone as in wired headset that had a mic so you can talk and the device uses it as a input as you talk

2 - a headset with no microphone as in your regular old stereo headset that you would normally hook up to your stereo system to listen to music with

This is extremely good info to verify that what was just connected is a wired headset that you expect to be able to talk in to and be heard correctly.

Upvotes: 1

Related Questions