做android工控机有时候需要让系统隐藏状态栏和导航栏,这样做的目的
1.程序界面完整美观
2.app的安全性,防止用户恶意退出app,造成一些其他的损失。甚至给app卸载了。
正常情况下隐藏系统状态栏和导航栏工控机厂商会在Framework层就做了处理,系统设置中
会给使用者提供开关。但。。。。偏偏就有些工控厂商就不给做,非要把这个问题抛给app,
app权限本身就比较低,做这种功能会比较费劲。但网上和google官方有一些全屏解决方案,但是
遇到dialog/或者用户有操作的情况下全屏就会退出了 。
下面是我搞的一个解决方案:
可全屏,且用户操作不会让导航栏状态栏弹出
/**
* 关闭Android导航栏,实现全屏
*/
private void closeBar() {
try {
String command;
command = "LD_LIBRARY_PATH=/vendor/lib:/system/lib service call activity 42 s16 com.android.systemui";
ArrayList envlist = new ArrayList();
Map env = System.getenv();
for (String envName : env.keySet()) {
envlist.add(envName + "=" + env.get(envName));
}
String[] envp = envlist.toArray(new String[0]);
Process proc = Runtime.getRuntime().exec(
new String[] { "su", "-c", command }, envp);
proc.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}