我按下面方法捕获不到,在网上查了下,好像home键按下面的方法是捕获不到,没有执行if里面的语句,可是要怎么来做呢,谁有方法呢?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode==KeyEvent.KEYCODE_HOME){

  ……
                }

return super.onKeyDown(keyCode, event);
}

解决方案 »

  1.   

    这个以前很多人问过,应该是不行的,需要framework层才能拦截到
    http://www.eoeandroid.com/thread-3334-1-1.html
    看看吧
      

  2.   

    应用层得不到home键,只有修改底层了。但知不道修改哪里,同问。
      

  3.   


    底层修改的话,在PhoneWindowManager.java中处理。2.2以前是放在/frameworks/policies/base/phone/com/android/internal/policy/impl/ 3.0要换位置了。
      

  4.   

    Mark 一下。
    这是个good idea。
      

  5.   

    http://www.eoeandroid.com/thread-3334-1-1.html最后的结论是无解
      

  6.   

    这个是不能捕捉到的...按home键是暂停当前程序的
      

  7.   

    肯定可以俘获,看看Android版本的QQ,按Home键,QQ就最小化了。
      

  8.   

    Android平台Home键(KEYCODE_HOME)捕获方法
    http://blog.acein.cn/?p=43
      

  9.   

    在Android较新版本中,如Froyo(2.2)可以采用下面的方法来捕获Home键(KEYCODE_HOME)a. 重写父类方法onAttachedToWindow,并设置TYPE_KEYGUARD类型。?1234567 @Overridepublic void onAttachedToWindow() {       // TODO Auto-generated method stub       this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);         super.onAttachedToWindow(); } b. 重写onKeyDown等相应方法。?123456789 @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {       switch (keyCode) {             case KeyEvent.KEYCODE_HOME:             return true;       }         return super.onKeyDown(keyCode, event); } c. 带来的问题: 发现setType(TYPE_KEYGUARD)后,TitleBar/StatusBar/screenOrientation无法控制。d. 建议:一般应用程序是没有必要做KEY_HOME屏蔽,如果你想到要用,看看你的应用程序逻辑流程是否有问题。
      

  10.   

    另外想问一下怎么捕获power键?