如何以编程方式在android上禁用状态栏/通知栏?

时间:2011-09-28 05:41:33

标签: android android-manifest

我创建一个锁屏应用程序..此应用程序由SMS触发..当收到包含SMS的命令时,它将显示锁定屏幕活动。

我的锁屏活动正在使用TYPE_KEYGUARD来禁用主屏幕按钮。当设备屏幕关闭然后我再次打开时,我的问题是状态栏/通知栏仍然出现在我的屏幕上。这是一个问题,因为即使设备被锁定,用户仍然可以通过状态栏/通知栏访问某些程序。所以我想消除这个状态栏/通知栏,以便用户(盗窃)不能再访问该设备.. 请帮我解决这个问题..

4 个答案:

答案 0 :(得分:12)

我认为您尝试做的是以编程方式将活动设置为全屏。如果是这样,请考虑以下事项:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                     WindowManager.LayoutParams.FLAG_FULLSCREEN);

来源:http://www.androidsnippets.com/how-to-make-an-activity-fullscreen

答案 1 :(得分:6)

  public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);
      getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
      getWindow().requestFeature(Window.FEATURE_NO_TITLE);
}

答案 2 :(得分:6)

requestWindowFeature(Window.FEATURE_NO_TITLE);

仅禁用活动的标题栏,而不是顶部的通知栏。

在Android清单中为您的活动使用此主题:

"Theme.NoTitleBar.Fullscreen"

对我有用。

它隐藏了通知栏。

答案 3 :(得分:4)

在Android 4.0及更低版本

选项1:

<application
    ...
    android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" >
    ...
</application>

选项2:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // If the Android version is lower than Jellybean, use this call to hide
        // the status bar.
        if (Build.VERSION.SDK_INT < 16) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
        setContentView(R.layout.activity_main);
    }
    ...
}
Android 4.1及更高版本

View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();
  

对于Android 4.6(Api 19)及更高版本,请使用Immersive Full-Screen Mode

Reference from Google