I got issue with Nexus 10 - 4.2.2. I was testing code below on Galaxy Tab 10.1 with 4.0.4 and it was working fine:
try
{
Process proc = Runtime.getRuntime().exec(new String[]{"sh","startservice","-n","com.android.systemui/.SystemUIService"});
proc.waitFor();
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
//REQUIRES ROOT
Process proc = Runtime.getRuntime().exec(new String[]{"su","-c","service call activity 42 s16 com.android.systemui"}); //WAS 79
proc.waitFor();
}
catch(Exception ex)
{
//Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_LONG).show();
}
But on Nexus 10 system bar won't show after, just hide.
I think you should not use system calls via
Runtime.exec()
to get that result. You should look at the code inFullscreenActivity
template (sources are placed in<android-sdk-folder>/tools/templates/activities/FullscreenActivity/root
): that is a full working example showing how to show/hide system bars (both top and bottom one) programmatically, and it even supports animations for API 13+.Answer by goodm works fine, but most of us are not aware about envp
So here is full code:
HIDE
You can use similar for show.
To show and hide the system bar and notification bar on 4.2.2 and others:
Hide:
Show: