Android 关闭虚拟按钮、底部导航条,顶部状态栏,下拉栏(适用于6.0之前)

之前试了网上的很多方法,真实用的我很茫然啊,终于找到了一个好用的方法,不过这个方法应该只试用于5.x或是之前安卓系统,更高系统版本的做起来应该很麻烦,还好我要用的这个版本不是很高,安卓5.1.1系统版本,测试成功,但是我用安卓7.0系统版本测试此方法不成功。
1. 添加权限


2. 封装代码

import java.util.ArrayList;
import java.util.Map;
/**
 * 关闭显示 顶部与底部导航栏
 * 在 activity 里调用
 */
public class NavigationBarUtil {
    /**
     * 关闭底部导航条
     */
    public static 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();
        }
    }
    /**
     * 显示底部导航条
     */
    public static void showBar() {
        try {
            String command;
            command = "LD_LIBRARY_PATH=/vendor/lib:/system/lib am startservice -n com.android.systemui/.SystemUIService";
            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();
        }
    }
}

3. 备注
只能在Activity中调用方法才好用。

你可能感兴趣的:(Android)