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