Rooted Android Nexus 7 Lollipop 禁用 SystemUI(系统 + 导航栏)(C# for Xamarin)

Rooted Android Nexus 7 Lollipop disable SystemUI (system + navigation bar) ( C# for Xamarin )

我使用以下代码禁用我的 4.4 nexus 设备上的导航栏和状态栏

    try {
            proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "service call activity 42 s16 com.android.systemui" });
        } catch (Exception e) {
            Log.w("Main","Failed to kill task bar (1).");
            e.printStackTrace();
        }
        try {
            proc.waitFor();
        } catch (Exception e) {
            Log.w("Main","Failed to kill task bar (2).");
            e.printStackTrace();
        }

很有魅力。但是当我尝试在我的 Nexus 7 上做同样的事情时。屏幕变黑,我看不到我的应用程序 activity。

我是不是做错了什么? android 5.0 的命令是否不同?

两台设备都已 root

找到答案,上面的代码在 Lollipop 上不起作用。下面的代码适用于 Android 的旧版本和新版本(在 5.0 和 4.4 上测试)。

private void systemUIEnabled(System.Boolean enabled){

        try {

            Java.Lang.Process  process = Runtime.GetRuntime().Exec("su");
            DataOutputStream os = new DataOutputStream(process.OutputStream);
            os.WriteBytes("pm " + (enabled ? "enable" : "disable") 
                + " com.android.systemui\n");
            os.WriteBytes("exit\n");

            Toast.MakeText (this, " UI Update , Post Reboot", ToastLength.Long).Show ();
            os.Flush();
        } catch (IOException e) {
            e.PrintStackTrace();
            Toast.MakeText (this, " UI Update , Error", ToastLength.Long).Show ();
        }

    }

已更新:

以上解决方案是 C# for Xamarin.下面是Java代码

public void setSystemUIEnabled(boolean enabled){
try {
    Process p = Runtime.getRuntime().exec("su");
    DataOutputStream os = new DataOutputStream(p.getOutputStream());
    os.writeBytes("pm " + (enabled ? "enable" : "disable") 
            + " com.android.systemui\n");
    os.writeBytes("exit\n");
    os.flush();
} catch (IOException e) {
    e.printStackTrace();
}