如何在Android LockScreen App中禁用导航栏,如CM locker和OS8锁定屏幕

时间:2015-10-05 12:26:36

标签: android navigationbar lockscreen

我尝试设置systemUIView(View.GONE)并使用沉浸式全屏模式。但是,用户可以通过触摸屏幕底部来返回导航栏。我上面提到的应用程序可以在没有root或设置默认启动器的情况下隐藏它。

2 个答案:

答案 0 :(得分:1)

好的,我终于发现了一种闷热,这就是它的完成方式:

  1. 使用SYSTEM_UI_FLAG_IMMERSIVE_STICKY来隐藏导航栏,如下所示,您可以将代码放在onResume of activity中

    查看decorView = getWindow()。getDecorView();         int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;         decorView.setSystemUiVisibility(uiOptions);

  2. 然后,使用WindowManger添加系统错误窗口并将其叠加在外部

  3. 您可以将此不可避免的视图放在任何您喜欢的位置,但如果您想在用户锁定屏幕时执行此操作,请添加此标记:

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

    Etvoilà

答案 1 :(得分:0)

好吧,我从来没有实现过这个,但似乎你需要设置一些其他标志来获得这种观点:

  

当您使用 SYSTEM_UI_FLAG_IMMERSIVE 标志时,它会根据您设置的其他 UI 标记隐藏系统栏( SYSTEM_UI_FLAG_HIDE_NAVIGATION SYSTEM_UI_FLAG_FULLSCREEN ,或两者兼而有之)。当用户在系统条区域中向内滑动时,系统条重新出现并保持可见。

以下是可用于设置这些标记的代码段:

// This snippet hides the system bars.
private void hideSystemUI() {
    // Set the IMMERSIVE flag.
    // Set the content to appear under the system bars so that the content
    // doesn't resize when the system bars hide and show.
    mDecorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
            | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE);
}

// This snippet shows the system bars. It does this by removing all the flags
// except for the ones that make the content appear under the system bars.
private void showSystemUI() {
    mDecorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}

有关更多信息,请从Android开发者网站查看Using Immersive Full-screen Mode

希望得到这个帮助。