2012-07-06 118 views
0

我用下面的代码禁用Android主按钮和通知栏

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 

我用下面的代码来禁用home键

@Override 
public void onAttachedToWindow() 
{ 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);  
    super.onAttachedToWindow(); 
} 

禁用通知栏,但是当我用上面的代码要禁用主页按钮,通知将显示在最上面。
任何人都可以告诉我如何实现这两个?

+1

为什么会有人想要禁用的主页按钮之前,您onCreate()方法添加该代码? – Egor 2012-07-06 08:13:49

+0

我正在制作锁屏 – jaisonDavis 2012-07-06 08:17:49

+0

我同意叶戈尔。主页按钮有很好的理由,不应该被禁用。这个确切原因,我怀疑Android甚至会让你。编辑:好吧,我可以看到为什么在锁屏的情况下。 – Doomsknight 2012-07-06 08:17:50

回答

0

你可以通过onKeyDown回调来拦截HOME按钮,并采取适当的行动,但我不确定它是否会起作用。没有尝试过自己。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_HOME) { 
      // Do nothing, or everything else you want to do when the HOME is pressed. 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
+0

我以为这只是键盘按键。 – Doomsknight 2012-07-06 08:18:36

+0

此代码以及我的问题中的onAttachToWindow()代码可以禁用所有的键,但不是通知栏.... – jaisonDavis 2012-07-23 12:07:29

0

使用

<activity 
    android:label="@string/app_name" 
    android:name=".MyActivity" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> 

代替

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
1

调用setContentView()

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
+0

这是非常有用的,它的工作原理 – 2012-08-05 11:58:20