Страницы

Поиск по вопросам

суббота, 11 апреля 2020 г.

Отловить появление AlertDialog в другом приложении

#android #java

                    
Здравствуйте! Есть чужое приложение, которое в некоторый момент выводит AlertDialog.
Вопрос: как можно отловить появление этого диалога в своём приложении?
Допускается использование всех прелестей root+busybox.
Заранее спасибо!    


Ответы

Ответ 1



Я бы покопался в исходниках WindowManagerService. В грубом приближении: Пишем сервис, который мониторит стек активити через ActivityManager.getRunningTasks() и при появлении нужного приложения делает "стойку". Далее каким-то образом надо получить инстанс WindowServiceManager (без понятия, как) и ждем появления в стеке окошек AlertDialog. До списка окошек можно достучаться через рефлексию, например, вызовом WindowServiceManager.dumpWindows(). Такие вот наводки - по крайней мере я бы копал в этом направлении. Update Это вы называете хардкором? Да это так, детские шалости. Менее хардкорно можно попробовать половить логи, правда, начиная с JB (4.1) логи видны без пермишена только руту - так что может оказаться это более хардкорным.

Комментариев нет:

Отправить комментарий