首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测耳机按钮双击和长按(单击) Android

检测耳机按钮双击和长按(单击) Android
EN

Stack Overflow用户
提问于 2016-03-23 15:45:38
回答 1查看 969关注 0票数 0

检测耳机按钮双击和长按(单击) Android

我正在尝试下面的代码

代码语言:javascript
复制
 public class MediaButtonReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            Log.e("----onReceive--", " ");

            if (Intent.ACTION_HEADSET_PLUG.equals(intent.getAction())) {

                Log.e("----jack out--", " ");

                if (intent.getExtras().getInt("state") == 1)// if plugged
                    Toast.makeText(context, "earphones plugged", Toast.LENGTH_LONG)
                            .show();
                else
                    Toast.makeText(context, "earphones un-plugged",
                            Toast.LENGTH_LONG).show();
            }

            if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
                Toast.makeText(context, "button pressed", Toast.LENGTH_LONG).show();
                // key=intent.getExtras().getString("EXTRA_KEY_EVENT");

            }

            abortBroadcast();

        }

它可以检测到耳机按钮的正确点击

但是,我们如何检测耳机的长点击和双击

EN

回答 1

Stack Overflow用户

发布于 2017-01-22 20:30:04

对于双击,您可以通过覆盖Activity onKeyDown方法并测量每次单击之间经过的时间来检测它:

代码语言:javascript
复制
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_HEADSETHOOK){
        //check if it's the first or the second click and measure time between them
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

还有一种Activity onKeyLongPress方法,但它似乎不能在我的带耳机按钮的设备上工作,因为当我长时间按下耳机按钮时,它会启动Google Now,但我在活动中检测不到它

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

https://stackoverflow.com/questions/36172380

复制
相关文章

相似问题

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