androidhome键拦截
❶ 如何屏蔽android的home键 4.2版本以上
android4.0之后屏蔽Home键的方法。
代码如下:
public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;在onCreate函数中添加如下代码
代码如下:this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);
在android2.2 2.3中可以通过在activity中重写代码如下:@Overridepublic void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
这个函数屏蔽Home键。
❷ android怎么禁用home键
在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"
❸ 如何在Android App中屏蔽Home按键及其他按键
在Android App中屏蔽Home按键及其他按键,需要在APP中添加以下代码:
1、屏蔽HOME按键,在onAttachedToWindow中设置FLAG_HOMEKEY_DISPATCHED
2、屏蔽除Power , Home外的按键,覆盖dispatchKeyEvent方法,并返回为true
public class LockByKeyGuard extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onAttachedToWindow() {
//关键:在onAttachedToWindow中设置FLAG_HOMEKEY_DISPATCHED
this.getWindow().addFlags(WindowManager.LayoutParams. FLAG_HOMEKEY_DISPATCHED);
super.onAttachedToWindow();
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// 返回true,不响应其他key
return true;
}