做android工控機有時候需要讓系統(tǒng)隱藏狀態(tài)欄和導航欄,這樣做的目的
1.程序界面完整美觀
2.app的安全性,防止用戶惡意退出app,造成一些其他的損失。甚至給app卸載了。
正常情況下隱藏系統(tǒng)狀態(tài)欄和導航欄工控機廠商會在Framework層就做了處理,系統(tǒng)設置中
會給使用者提供開關。但。。。。偏偏就有些工控廠商就不給做,非要把這個問題拋給app,
app權限本身就比較低,做這種功能會比較費勁。但網(wǎng)上和google官方有一些全屏解決方案,但是
遇到dialog/或者用戶有操作的情況下全屏就會退出了 。
下面是我搞的一個解決方案:
可全屏,且用戶操作不會讓導航欄狀態(tài)欄彈出
/**
?? ? * 關閉Android導航欄,實現(xiàn)全屏
?? ? */
? ? 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();
? ? ? ? }
? ? }