android - 如何以编程方式从另一个应用程序中杀死像应用程序这样的聊天头?

标签 android activity-manager

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

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

最佳答案

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

关于android - 如何以编程方式从另一个应用程序中杀死像应用程序这样的聊天头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27425013/

相关文章:

android - Android Studio 中的警告 : Can be replaced with collect call

android - 如何获取android中所有非系统应用程序的列表

android - 从另一个应用程序完成或关闭一个应用程序

javascript - Titanium Appcelerator 中基于 URL 的窗口

java - 非空对象类型上的 Retrofit-Kotlin NullPointerException

android - 关于 ALSA 驱动 : How to handle Audio Devices correctly

Android组织布局资源?

安卓 M : How can I get the current foreground activity package name(from a service)

android 模拟器 2.3.3 - 无法通过 adb 启动联系人应用程序