android屏蔽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怎樣屏蔽home 鍵
在onTouchEvent或者onInterceptTouchEvent中截獲KeyEvent_HOME,直接返回true。不要丟給系統處理。
...
case KeyEvent_HOME:
return true;
...
對不起,忽略我的回答,剛才在機器上試了下,沒有獲得消息。
看了下代碼,發下在phoneWindows裡面,截獲了很多硬體消息。而且是直接處理,不往activity再發送的,所以你如果需要處理這些消息,你可能要修改phonewindow的代碼。
③ android 4.1.2的如何屏蔽掉Home鍵
可以在onCreate方法的setContentView下面加入如下代碼,
//settings for catch the home key
Window win = getWindow();
WindowManager.LayoutParams lp = win.getAttributes();
lp.flags |= WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED; //0x80000000 should be replaced by WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED
win.setAttributes(lp);
重寫onKeyDown方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getKeyCode() == KEYCODE_HOME){
return true;
}
}
編譯通過後,問題可以解決。
④ 怎麼屏蔽Home鍵
修改*.kl這個文件,只會讓這個鍵不起作用。按照Android的框架,Home鍵在框架層是做了默認處理的,根本沒有把這個鍵值上傳給應用,因此應用應該是無法屏蔽Home鍵默認流程的。
⑤ android開發如何屏蔽home鍵 在網上查的差不多就是兩種方法 重寫onAttachedTo
在2.3版本以下重寫下面方法就能重寫home鍵
java">publicvoidonAttachedToWindow(){
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
在4.0以上的版本中需要利用以下方法屏蔽和重寫Home鍵,代碼如下:
publicstaticfinalintFLAG_HOMEKEY_DISPATCHED=0x80000000;//需要自己定義標志
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED,FLAG_HOMEKEY_DISPATCHED);//關鍵代碼
setContentView(R.layout.main);
}
再重寫onKey事件即可。
@Override
publicbooleanonKeyDown(intkeyCode,KeyEventevent){
if(keyCode==event.KEYCODE_HOME){
returntrue;
}
returnsuper.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中添加以下代碼:
屏蔽HOME按鍵,在onAttachedToWindow中設置FLAG_HOMEKEY_DISPATCHED
屏蔽除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;
}
⑦ 怎麼禁用Home鍵
下邊是android4.0之後屏蔽Home鍵的方法。
代碼如下:
public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;
在onCreate函數中添加如下代碼
代碼如下:
this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);
⑧ 如何在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;
}
⑨ 如何屏蔽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鍵。