所以我想制作一个以自助服务终端模式运行的应用程序。这是一个企业应用程序,此应用程序不需要放在应用程序商店。
平板电脑不会植根,因此我无法使用需要root的应用。
我已成功禁用主页按钮(我的应用程序是启动器),后退按钮,最近的应用程序,电源按钮(我关闭了焦点上的系统对话框)。
如何在通知托盘打开时关闭通知托盘?我有这个代码,但在用户拖动时它不起作用。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (! hasFocus) {
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
}
}
答案 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();
}
}