2016-11-08 37 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

相關問題