如何阻止快速设置被打开?

时间:2017-10-09 12:32:00

标签: android

所以我想制作一个以自助服务终端模式运行的应用程序。这是一个企业应用程序,此应用程序不需要放在应用程序商店。

平板电脑不会植根,因此我无法使用需要root的应用。

我已成功禁用主页按钮(我的应用程序是启动器),后退按钮,最近的应用程序,电源按钮(我关闭了焦点上的系统对话框)。

如何在通知托盘打开时关闭通知托盘?我有这个代码,但在用户拖动时它不起作用。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);

        if (! hasFocus) {
            Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
            sendBroadcast(closeDialog);
        }
    }

1 个答案:

答案 0 :(得分:0)

我通过尝试每隔50ms关闭系统对话框来修复它,而我没有焦点:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if(!hasFocus && isKioskModeActive) {
        t = new Thread(() -> {
            while (!hasWindowFocus() && isKioskModeActive) {
                // Close every kind of system dialog
                Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
                sendBroadcast(closeDialog);

                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    System.out.println("Thread interrupted: 'Kiosk Close system dialog'");
                }

            }
            t = null;
        });

        t.start();
    }
}