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();
}
我使用以下代码禁用我的 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();
}