我有一台安装了4.3版本的Nexus 10,已经取得了root权限。使用以下代码隐藏系统栏效果良好:
Process proc = Runtime.getRuntime().exec(new String[]{"su","-c","service call activity "+ ProcID +" s16 com.android.systemui"}); //WAS 79
proc.waitFor();
但是当我尝试使用以下代码取消隐藏时,它从未取消隐藏:
Process proc = Runtime.getRuntime().exec(new String[]{"am","startservice","-n","com.android.systemui/.SystemUIService"});
proc.waitFor();
如果我从adb shell发出“am”命令,它将按照其广告所述正常工作(系统栏重新出现)。在根调用周围有一个try/catch,并且没有异常。我从“am”得到“1”的完成代码。
隐藏和显示位于同一应用程序中的两个不同活动中,尽管我不知道这是否重要。
对于那些感兴趣的人,这是一个关于kiosk应用程序的问题,在运行时需要隐藏该栏,然后在从隐藏菜单退出应用程序时重新出现。
谢谢!