首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ACTION_HEADSET_PLUG没有记录特别奇怪的“状态”?

ACTION_HEADSET_PLUG没有记录特别奇怪的“状态”?
EN

Stack Overflow用户
提问于 2011-09-28 22:59:13
回答 1查看 1.5K关注 0票数 0

我正在用Intent.ACTION_HEADSET_PLUG做一些测试。

给出如下代码应该是给出响应的代码(来自com.android.server.HeadsetObserver类2.2.1 r1):

代码语言:javascript
复制
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(2)从何而来?有人能启发我吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-09-29 03:20:17

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

0-拔掉插头,因为没有耳机连接到设备上。

1-带麦克风的耳机,就像有线耳机里有麦克风,这样你就可以说话,而且当你说话的时候,这个设备会用它作为输入。

2-一个没有麦克风的耳机,就像在你平常的旧立体声耳机里一样,你通常会连接到你的立体声系统听音乐。

这是一个非常好的信息来验证,刚刚连接的是一个有线耳机,你希望能够交谈,并被正确听到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7590644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档