Easy way to hide system bar on Android ICS

后端 未结 8 1194
抹茶落季
抹茶落季 2020-11-28 10:32

I will give my ICS tablets for users to complete a survey so I would like the user to work with my app only. They should not be able to switch to the home screen, press back

8条回答
  •  无人及你
    2020-11-28 10:34

    After a lot of searching on the internet, I managed to get the System Bar to hide and appear in a 4.2 device using:

    To Hide:

    Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui");
    

    Or use 79 instead of 42 for API less than 14. You may also need to include the SET_DEBUG_APP permission, in which case you need to have the application signed with the system key or installed in the /system/app/ directory.

    To Show:

    Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService");
    

    Alternatively some people have used the -a (instead of -n) option, though this was causing an error on my device:

    Error: Not found; no service started.

    For Android 4.4, there is a new feature called immersive mode which hides both the system and status bars. The system UI is toggled by the user through the use of an edge swipe from the top or bottom of the screen. For more details take a look at:

    http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)

    Using new IMMERSIVE mode in android kitkat

    For example:

    getWindow().getDecorView().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)
    

提交回复
热议问题