При работе над приложением в стиле киоска я знаю, что некоторые диалоги выходят на передний план и могут быть обнаружены
ActivityManager activityManager = (ActivityManager)getBaseContext()
.getSystemService(Activity.ACTIVITY_SERVICE);
String className = activityManager.getRunningTasks(1).get(0).topActivity.getClassName();
Примером этого является диалоговое окно привязки Bluetooth, которое выводит com.android.settings на передний план.
Контрпримером является диалоговое окно кнопки питания («Выключить», «Перезагрузка» и т. Д.), Которое не выходит на передний план.
Обратите внимание, что вы можете закрыть системные диалоги (даже диалог кнопки питания) с помощью этой трансляции:
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);
Но на большинстве (всех более новых?) Устройств эта широковещательная рассылка даже закрывает программную клавиатуру, поэтому не рекомендуется запускать службу, которая часто отправляет ее, так как тогда пользователь не сможет ничего вводить в текстовое поле.
Обратите внимание, что такое поведение определенно удовлетворит ваше приложение как вредоносное ПО, не позволяя опубликовать его в Google Play.