3

我正在编写一个应用程序来管理对其他应用程序的访问。用户可以决定他想在设备上阻止哪个应用程序,如果有人启动被阻止的应用程序,他会看到屏幕通知他有关封锁。我有自己的启动器和后台进程,用于检查当前打开的活动是否被阻止。要检查顶级活动,我使用来自 ActivityManager getRunningTasks(); 的包和类名;如果此应用程序被阻止,我会通过将其添加到 WindowManager 来用我自己的视图覆盖它。这适用于每个应用程序,除了它也使用 WindowManager,如 Facebook 聊天头或 LG - QSLIDE 带来的多任务处理。此应用程序不在顶部。当然,我可以使用 getRunningAppProcesses 找到她的进程,但我无法杀死它。Android.os.Process.killprocess 也不起作用。我知道这不是一个好主意,但我没有其他的。

是否有可能识别出某些应用程序向 WindowManager 添加了某些内容并最终阻止它?或者只是删除视图或终止应用程序?

4

1 回答 1

0

Facebook(和许多其他应用程序)使用 SYSTEM_ALERT 绘制到窗口来管理他们的小聊天头。在撰写本文时(6.0.1),没有 API 可以监听正在添加的视图和/或收集有关该视图的任何信息。

于 2016-06-24T00:47:46.230 回答