删除Android导航和顶栏,

Jol*_*lle 2 java android kiosk-mode

我正在尝试在有根的 android 设备上实现 Kiosk 应用程序,我需要完全禁用导航和状态栏。

这些命令适用于 adb shell

禁用:

service call activity 42 s16 com.android.systemui
Run Code Online (Sandbox Code Playgroud)

使能够:

am startservice -n com.android.systemui/.SystemUIService
Run Code Online (Sandbox Code Playgroud)

那挺好的!现在我需要能够从我的应用程序中做到这一点。所以要禁用我试过:

Process process = Runtime.getRuntime().exec("su service call activity 42 s16 com.android.systemui");
Run Code Online (Sandbox Code Playgroud)

在我的活动中按下按钮时。但是没有任何反应,也没有抛出异常。但是会弹出一个祝酒词,说该应用程序已被授予超级用户权限。

有任何想法吗?

And*_*kin 5

要运行 su cmd 你可以使用这个

public static void runCmd(String cmd) {
    DataOutputStream os;
    try {
        Process process = Runtime.getRuntime().exec("su");
        os = new DataOutputStream(process.getOutputStream());
        os.writeBytes(cmd + "\n");
        os.writeBytes("exit\n");
        os.flush();
        os.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

要禁用系统用户界面,您可以运行此命令

runCmd("pm disable com.android.systemui && service call activity 42 s16 com.android.systemui");
Run Code Online (Sandbox Code Playgroud)

如果你想启用回

runCmd("pm enable com.android.systemui && am startservice -n com.android.systemui/.SystemUIService");
Run Code Online (Sandbox Code Playgroud)