在显示顶部和底部导航栏之前禁用/询问密码

时间:2018-02-21 12:36:20

标签: android android-4.4-kitkat android-windowmanager android-immersive

在为平板电脑开发客户端调查应用程序时,我意识到我必须禁用通知面板隐藏底部导航,以防万一,那些有趣的客户试图成为一个聪明的***。

我正在使用非root设备,因此使用this中的反射回答不是一个选项。

  

同时加入   getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY);   会做的伎俩,它也会禁用其他一切。

我首先要求全屏显示该应用只是为了隐藏顶部栏,但这并没有对底部导航栏做任何事情。

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

因此我使用了Immersive Full-Screen Mode。它确实隐藏了顶部和底部条形,但当用户向上或向下滑动时,它们会再次出现。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        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
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}
  

该设备在 Android 4.4

上运行

我正在寻找一种方法来完全禁用它们或(最佳情况在再次显示之前要求输入密码

2 个答案:

答案 0 :(得分:4)

如果我了解您的问题,您正在寻找的是一个单一用途的设备,如果设备运行Android 5及更高版本,您可以使用startLockTask()功能实现您想要的功能{{3} }

  

设备所有者必须在setLockTaskPackages中包含您的应用包   设置可以进入锁定任务模式的包   需要由EMM设定   您可以调用isLockTaskPermitted来验证您的包已被setLockTaskPackages列入白名单。   您的活动致电startLockTask()   请求将用户锁定到当前任务   阻止启动其他应用,设置和主页按钮   要退出,您的活动必须致电stopLockTask()   只能在以前称为startLockTask()的活动上调用   当应用在onResume()onPause()

之间面向用户时应该调用

通过使用这里所述的操作,您似乎可以在低于5的Android版本上实现相同的功能:https://developer.android.com/work/cosu.html#emm-solutions

  

概述

     

通过禁用各种Android来实现Kiosk模式   可用于离开您的应用程序的功能。以下功能   受影响:

     
      
  • 后退按钮
  •   
  • 主页按钮
  •   
  • 最近的应用按钮
  •   
  • 电源按钮
  •   
  • 音量按钮
  •   

答案 1 :(得分:0)

可能比你想要的更多的工作,但你可以开发一个自定义启动器,以防止退出调查应用程序,或立即在退出启动器上重新启动它,在这种情况下是默认的主屏幕和活动启动界面...那将至少在Android的爱人版本上工作。我希望它可以做很多工作,尤其是“插入”用户可能会找到的所有小问题和漏洞(进入设置等)