2015-12-22 6 views
0

Я хочу программно отпустить диалоговое окно сгенерированного системой. Я попробовал все предоставленные здесь решения (stackoverflow), но он, похоже, не работает. This является принятым ответом в основном везде, но он только отклоняет панель уведомлений и меню последних заданий.Android отклоняет системный диалог программно

Я тестировал его на устройствах с os версии 4.0.3, 4.2.2, 4.4.2 и 5.1.1, он имеет одинаковое поведение для всех из них. Есть приложения, которые могут фактически отклонить все системные диалоги (Mubble). Может кто-нибудь предложить, как это делается?

Благодаря

+0

Вы уверены, что ваша рассылка, чтобы закрыть намерения, уволили? Поместите широковещательный приемник на одно и то же и проверьте. – shiladitya

+0

@shiladitya: Да, трансляция увольняется. Отключено диалоговое окно отключения питания, меню последних заданий и панель уведомлений; однако диалоговое окно системного предупреждения, которое я хочу уволить, не уходит. – Ishaan

+0

Я пробовал точно http://stackoverflow.com/a/24013884/3024565, но это тоже не помогает. :( – Ishaan

ответ

0

Обычный ответ на это

sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); 

Однако, это не работает для всего. В частности, на некоторых устройствах он не работает для списка «последние приложения».

Решение заключается в обнаружении, когда ваше приложение теряет фокус, а затем перемещает ваше приложение на передний план. Обратите внимание, что для этого приложения потребуется разрешение android.permission.REORDER_TASKS.

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     this.keepFocus = true; 
    } 
    if (! hasFocus && this.keepFocus) { 
     ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 
     am.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_WITH_HOME); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^