Как закрыть/отменить/отклонить системный диалог программно (Android)

У меня есть приложение, которое делает вызовы 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 диалогов для пользователя, закрывающихся, и моему приложению нужно будет выполнять последовательные вызовы, можно ли программно закрыть этот системный диалог?

9
задан kaiz.net 2 October 2012 в 07:55
поделиться