Android fullscreen app - prevent access to status bar

后端 未结 2 1651
没有蜡笔的小新
没有蜡笔的小新 2020-12-04 02:51

I am creating a fullscreen app which will run in \"kiosk\" mode, so the user will not be able to exit. The app is defined as a launcher (home screen).

The Acti

相关标签:
2条回答
  • 2020-12-04 03:39

    However, it seems that the status bar is still accessible.

    Yes, because the com.android.systemui package is running which is responsible for the status bar and software navigation bar. The following is a couple of solutions on disabling the package. Note that in order to make use of the solutions the extended privileges (ideally root) are needed.

    Reboot persistent solution

    Rename the apk extension of /system/app/SystemUI.apk or delete the file completely. You have to remount the /system partition as it is read-only by default. After renaming/deleting the system likely uninstall the /data/data/com.android.systemui package. If not, do it manually, then reboot.

    Reboot impermanent solution

    Disable/enable the framework service at runtime (e.g. on your app start up) with the calls (valid prior to KitKat at least) to:

    service call activity 42 s16 com.android.systemui  // disable status bar
    

    and

    am startservice -n com.android.systemui/.SystemUIService  // enable status bar
    

    Note, the solution is not persistent on reboot.

    0 讨论(0)
  • 2020-12-04 03:39

    put this code in oncreate method

    int myflag= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LOW_PROFILE
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
    
    getWindow().getDecorView().setSystemUiVisibility(myflag);
    

    for more details https://developer.android.com/training/system-ui/immersive.html

    0 讨论(0)
提交回复
热议问题