公司要开发一款智能终端,设备中预装了本公司开发的软件,但是为了避免用户进入Android系统的界面,这个时候我们就需要对其中的按键加以屏蔽,尤其是Home键,在普通的情况下,当我们点击Home按键的时候,就返回到我们的Android系统,在这里,当我们点击Home按键的时候,让返回我们应用的主界面。
在Android4.0以下版本的Android设备中,可以重写onAttachedToWindow方法来实现屏蔽Home按键的作用
@Override public void onAttachedToWindow() { // TODO Auto-generated method stub this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); super.onAttachedToWindow(); }
但是在Android4.0以上版本的Android设备中就不能用了,不过刚刚发现了另外一种屏蔽和重写Home按键的方法:
1 public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);// 关键代码 6 setContentView(R.layout.activity_main); 7 } 8 9 @Override 10 public boolean onKeyDown(int keyCode, KeyEvent event) { 11 // TODO Auto-generated method stub 12 if (KeyEvent.KEYCODE_HOME == keyCode) { 13 Toast.makeText(MainActivity.this, "HOME", Toast.LENGTH_SHORT).show(); 14 } 15 return super.onKeyDown(keyCode, event); 16 }
这样的话你再点击Home按键的时候就不会返回到桌面了。
==