У меня есть приложение, которое выполняет USSD-вызовы, но после всех USSD-вызовов я получил диалог с результатом для пользователя.
Я знаю, что можно закрыть это диалоговое окно, потому что приложение "USSD Checker" делает это, они получают ответ от USSD, не показывая диалоговое окно пользователя.
В телефоне класс утилит
Имеет функцию displayMMIComplete
, которая после завершения вызова Ussd показывает TYPE_SYSTEM_DIALOG . В PhoneUtils.java они используют такой диалог:
AlertDialog newDialog = new AlertDialog.Builder(context)
.setMessage(text)
.setPositiveButton(R.string.ok, null)
.setCancelable(true)
.create();
newDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
newDialog.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_DIM_BEHIND);
newDialog.show();
Тогда я не могу просто отправить флаг, чтобы отклонить его. И я не могу использовать этот импорт как системный класс.
И когда я делаю X последовательных вызовов, появляется X диалогов, чтобы пользователь закрылся, и моему приложению нужно будет делать последовательные вызовы, есть ли в любом случае программно закрыть это системное диалоговое окно?