如何检测特定应用程序是否已启动?

时间:2016-11-08 00:06:32

标签: android android-intent resources android-broadcast

上下文

有一个应用程序与我的应用程序竞争应该是互斥锁定的硬件资源,但事实并非如此。公共Android SDK中的硬件资源没有API,竞争应用程序期望成为唯一需要它的应用程序。硬件资源的管理固件也期望它一次只能被一个应用程序获取。

问题

硬件资源上的冲突在固件中处理不好,如果用户在我的应用程序运行时启动竞争应用程序,我的测试设备通常需要重新启动(我可以检查竞争应用程序的服务与ActivityManager.getRunningServices()并阻止我的应用尝试获取硬件资源(如果用户在竞争应用运行时启动我的应用)。
我无法访问竞争应用程序的源代码或系统映像源代码,因此我的应用程序必须负责处理竞争应用程序的错误行为和/或固件对此硬件资源的竞争性处理不佳。

问题

当启动具有已知组件名称的应用程序活动或服务时,Android Marshmallow上运行的普通(即非系统)应用程序是否有办法接收回调?

1 个答案:

答案 0 :(得分:2)

  

当启动具有已知组件名称的应用程序活动或服务时,Android Marshmallow上运行的普通(即非系统)应用程序是否有办法接收回调?

没有。事实上,出于隐私和安全原因,Android 5.0+会煞费苦心地隐藏其他正在运行的应用程序的实时知识。