工控机隐藏导航栏状态栏-解决用户操作或者弹框等情况状态栏仍然弹出的问题

做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();

        }

    }

你可能感兴趣的:(工控机隐藏导航栏状态栏-解决用户操作或者弹框等情况状态栏仍然弹出的问题)