9

我确实知道为用户控制 HOME 按钮是不明智的。但我正在开发一个用于教育目的的 android 锁定应用程序。我正在浏览该网站,并在禁用主页按钮时找到了此链接。

@override

public void onAttachedToWindow()
{  
       this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
       super.onAttachedToWindow();  
}

目前我正在使用上面的代码来禁用我的主页按钮,但是我注意到即使我的 onCreate 中有这个

getWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

我无法删除我的通知栏删除。请指教。

4

3 回答 3

9

只需为您的活动使用不同的主题。在 Manifest.xml 中,将活动的主题属性设置为 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

于 2011-06-28T13:21:08.370 回答
7

您可以禁用电源按钮!你可以试试这个:项目:DisableAllButton

  • 禁用搜索,返回键:在“DisableAllButton.java”中

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        return false;
    }
    
  • 禁用 Home 键:在“DisableAllKey.java”中

    @Override
    public void onAttachedToWindow() {
        // TODO Auto-generated method stub
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }
    
  • 禁用电源键:在“DisableAllKey.java”中

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
    KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
    lock.disableKeyguard();
    
  • 在 AndroidManifest 中

    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
    
  • 并在 AndroidManifest 中设置全屏

    <application android:icon="@drawable/icon" android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    

完毕!:D。

于 2011-06-30T04:39:39.817 回答
1

查看Android源代码,View.java

public static final int STATUS_BAR_DISABLE_HOME = 0x00200000;

STATUS_BAR_DISABLE_HOME 标志对标准 api 隐藏。

我们可以只使用 0x00200000 来设置系统 ui 可见性,如:

View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility()|0x00200000);

但你应该添加

<uses-permission android:name="android.permission.STATUS_BAR" />

首先,此权限仅授予系统应用程序

于 2014-06-27T09:35:00.400 回答