ACTION_HEADSET_PLUG没有记录额外奇怪的“状态”?

时间:2011-09-28 22:59:13

标签: android android-intent

我正在使用Intent.ACTION_HEADSET_PLUG进行一些测试。

提供以下代码应该是给出响应的代码(来自com.android.server.HeadsetObserver类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);
    }
}

在文档中他们说:状态 - 0表示未插入,1表示已插入。

我奇怪地通过插入两个不同的耳机来获得两种不同的状态:

0 =未插电

1 =带麦克风的耳机

2 =没有麦克风的耳机


问题是:国​​家2(两个)来自哪里?有人可以开导我吗?

由于

1 个答案:

答案 0 :(得分:1)

我在我的一个应用程序中使用了这个额外的状态。你的一个耳机有一个麦克风,另一个没有。还要确保你一直插入它,但不要破坏任何东西:)

0 - 拔出,因为没有耳机连接到设备

1 - 带麦克风的耳机,如有线耳机,有麦克风,所以你可以说话,设备在你说话时用它作为输入

2 - 您的普通旧立体声耳机中没有麦克风的耳机,您通常可以连接到立体声系统来听音乐

这是一个非常好的信息,可以验证刚刚连接的是有线耳机,您希望能够正确对话并正确听到。