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;
}