У меня есть приложение, которое делает вызовы USSD, но после всех вызовов USSD я получил диалог с результатом для пользователя..
Я знаю, что это диалоговое окно можно закрыть, потому что это делает приложение «Проверка USSD», получая ответ от USSD, не отображая диалоговое окно пользователя.
В классе телефонных утилит
есть функция displayMMIComplete
, которая после завершения вызова Ussd показывает ТИП_СИСТЕМА_ДИАЛОГ . В 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 диалогов для пользователя, закрывающихся, и моему приложению нужно будет выполнять последовательные вызовы, можно ли программно закрыть этот системный диалог?