如何检查另一个应用程序是否最小化或在Android中打开?

时间:2015-07-01 19:04:33

标签: android

我已经看到很多解决方案来检查我们自己的应用程序是否已最小化,正在运行或后台。但是有没有办法检查另一个应用程序包是否正在运行或最小化,以便基于此我们可以运行代码。就像一个应用程序-locker。我们需要根据设备中安装的应用程序的用户选择关闭某个应用程序的网络,因此当所选应用程序位于前台时,应在关闭或最小化所选应用程序时禁用网络。然后启用网络。 如果我们制作这样的应用程序,它是否符合Google Play?因为我读到的某个地方他们不允许那些干扰其他app的应用程序感到困惑。

1 个答案:

答案 0 :(得分:1)

TL; DR:谷歌不希望你这样做,你不应该尝试。

从Android {5.0开始,依赖ActivityManager#getRecentTasks()找出哪个应用程序位于前台的旧hack已被禁用。

在Lollipop上工作的应用程序锁定器正在使用涉及ActivityManager#getRunningAppProcesses()的新hack。 this answer中描述了它的工作原理。 据报道,这个黑客在Android M上被破坏了。

有一个新的UsageStats API,您可以从中收集一些信息,但它需要一个只能由系统活动授予的权限。据记载,此系统活动可能不会出现在所有设备上。三星和LG是据报道已从Lollipop设备中删除此活动的制造商之一,因此只有系统应用程序才能使用UsageStats

最重要的是, Google已经表明了他们对阻止您尝试做的事情的承诺。即使您找到了临时解决方案,您也可以打赌它将在未来的Android中停止工作版。最终,谷歌将关闭所有漏洞,您的应用将永久破坏。因此,编写一个取决于此功能的新应用程序可能是浪费时间。