开发者

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 q开发者_高级运维uestion is: where the State 2 (two) come from? Can someone enlighten me?

Thanks


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜