Я пишу приложение, управляющее доступом к другим приложениям. Пользователь может решить, какое приложение он хочет заблокировать на устройстве. Если кто-то запускает заблокированное приложение, он видит экран, информирующий его о блокаде. У меня есть свой собственный запуск и фоновый процесс, которые проверяют, заблокирована ли в данный момент открытая активность. Чтобы проверить верхнюю активность, я использую имя пакета и класса из ActivityManager getRunningTasks(); Если это приложение заблокировано, я закрываю его собственным представлением, добавляя его в WindowManager. Это работает для каждого приложения, за исключением того, что также использует WindowManager, например, головоломки чата facebook или многозадачность, представленную LG - QSLIDE. Это приложение не сверху. Конечно, я могу найти ее процесс, используя getRunningAppProcesses, но я не могу его убить. Android.os.Process.killprocess также не работают. Я знаю, что это не очень хорошая идея, но у меня нет другой.Как убить чат-голова, как приложение, другое приложение программно?
Есть ли возможность узнать, что какое-то приложение добавило что-то в WindowManager и в конечном итоге заблокировать его? Или просто удалить просмотр или убить приложение?
Я столкнулся с той же проблемой. вы нашли какое-нибудь решение? @Arczi –
По-прежнему ищет ответ :(@waheedakhtar –
Это не просто проблема LG - QSLIDE. В PlayStore так много приложений, которые создадут ту же проблему (Check aircalc). Эти приложения называются плавающими приложениями. Я столкнулся с той же проблемой Я могу заблокировать каждое приложение, ожидающее плавающих приложений. –