屏蔽返回和home键

来源:互联网 发布:最终幻想零式hd优化 编辑:程序博客网 时间:2024/05/16 01:04
屏蔽返回键的代码:
public boolean onKeyDown(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_HOME:return true;
case KeyEvent.KEYCODE_BACK:return true;
case KeyEvent.KEYCODE_CALL:return true;
case KeyEvent.KEYCODE_SYM: return true;
case KeyEvent.KEYCODE_VOLUME_DOWN: return true;
case KeyEvent.KEYCODE_VOLUME_UP: return true;
case KeyEvent.KEYCODE_STAR: return true;
}
return super.onKeyDown(keyCode, event);

}


在2.3版本以下重写下面方法就能重写home键
public void onAttachedToWindow() {
      this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
      super.onAttachedToWindow();
}
在4.0以上的版本中需要利用以下方法屏蔽和重写Home键,代码如下:
public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; //需要自己定义标志
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码
    setContentView(R.layout.main);
}
再重写onKey事件即可。
@Override
      public boolean onKeyDown( int keyCode, KeyEvent event) {
             // TODO Auto-generated method stub
             if (keyCode == event. KEYCODE_HOME) {
                   return true;
            }
             return super.onKeyDown(keyCode, event);

      }

PS:

在AndroidMainfest.xml需要加权限:  
<uses-permission Android:name = "android.permission.DISABLE_KEYGUARD"/><!-- 屏蔽HOME键需要的权限 -->

在配置文件中,在你使用了Notification的activity中加一个属性android: android:launchMode="singleInstance"


0 0
原创粉丝点击