2016-11-08 28 views
1

上下文如何检测某个特定应用程序是否已启动?

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

的问题

碰撞在硬件资源没有在固件处理好了,如果用户启动应用程序的竞争,而我的应用程序正在运行(我在我的测试设备通常需要重新启动能够通过ActivityManager.getRunningServices()检查竞争应用的服务,并停止我的应用尝试获取硬件资源,如果用户在竞争应用运行时启动我的应用)。
我无法访问竞争应用程序的源代码或系统映像源代码,因此我的应用程序必须负责处理竞争应用程序的不良行为和/或固件对此硬件资源竞争的不良处理。

问题

是否有一个正常的方式(即,非系统)应用中使用Android棉花糖运行时,应用程序的活动或服务与已知组件名称被启动以接收回调?

回答

2

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

不,实际上,出于隐私和安全原因,Android 5.0+会尽力隐藏其他正在运行的应用程序的实时知识。

+0

你有没有参照6.0+中的度量值来隐藏有关其他正在运行的应用程序的实时信息?我知道他们在棒棒糖中使用ActivityManager.getRunningTasks和getRecentTasks,但我没有意识到在棉花糖中引入了进一步的措施。 – CCJ

+1

@CCJ:对不起,我错误地记住了这些变化的时间。新版本中还有其他更改(例如,限制对'/ proc'的访问),但是IIRC没有包含在标准SDK中。 – CommonsWare

相关问题