默认的menu键长按事件好像都是弹出输入法界面,如何屏蔽掉呢,也就是使长按menu键不做任何反应

解决方案 »

  1. frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java看看这个文件,我新加的一些按键长按处理就是在这里面加的。
      

  2. 修改frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java
      

  3.  PhoneWindowManager.java中的
    public boolean interceptKeyTi(WindowState win, int code, int metaKeys, boolean down, 
                int repeatCount, int flags) {
    ……
     else if (code == KeyEvent.KEYCODE_MENU) {……
      

  4. 直接监听长按就可以了 不用改源码。
    也可以定制返回按键的提示是否退出一样的做法
    长按重写public boolean onKeyLongPress(int keyCode, KeyEvent event)
    短按重写public boolean onKeyDown(int keyCode, KeyEvent event)  @Override
      public boolean onKeyLongPress(int keyCode, KeyEvent event)
      {
        // TODO Auto-generated method stub
        if (keyCode == KeyEvent.KEYCODE_MENU)
        {
          return false;  //直接屏蔽
        }
        else    
          return super.onKeyLongPress(keyCode, event);
      }
      

  5. 嗯,4楼的我也试了,不行,
    3楼说的我在我的sdk安装目录中没找到啊
      

类似问题 »