如何使用耳机按钮作为Android中的按键通话按钮

时间:2013-04-02 11:29:28

标签: android

我想使用耳机按钮“KEYCODE_HEADSETHOOK”作为Android中的按键通话按钮,即按住我可以做某事然后在我发布时停止。 感谢

这是我的代码

if (keyCode == KeyEvent.KEYCODE_HEADSETHOOK/*KEYCODE_HEADSETHOOK*/ && event.getAction() == KeyEvent.ACTION_DOWN) {
     Log.e("RAM","Set");
     setPushToTalk(true);
     return true;
     }
    else if (keyCode == KeyEvent.KEYCODE_HEADSETHOOK && event.getRepeatCount() == 0 && (event.getFlags() & KeyEvent.FLAG_LONG_PRESS) == KeyEvent.FLAG_LONG_PRESS) {
        switch (keyCode) {
        case MotionEvent.ACTION_DOWN:
            if(!mService.isConnected()){
                playTone();
                return false ;
            }
            boolean waitFlag = false;
            for (User user : mService.getUserList()) {
                if (user.getChannel().equals(getChannel())) {
                    if (user.talkingState == 1)
                        waitFlag = true;// user);
                    // Log.e("Talking user",user.name+"/"+user.talkingState);
                }
            }
            if (waitFlag){
                sendWaitingMsg();
            }
            else{
                setPushToTalk(true);
            }
            Log.e("headphone btn", "down");
            return true;
        case MotionEvent.ACTION_UP:
            setPushToTalk(false);
            Log.e("headphone btn", "up");
            return true;
        }

1 个答案:

答案 0 :(得分:1)

查看http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HEADSETHOOK

它看起来像是一面旗帜。它只会在按下时发送一条消息,保持不会产生稳定的输入,您必须使用按钮“切换”通话,或者如果通过它打开/关闭标志,可能允许语音检测功能或避免keyEvent 完全做硬件寻址?