从PackageManager获取包裹
-
29-09-2019 - |
题
我正在编写一个具有模块化系统的应用程序。它具有一个核心应用程序和一些应用程序,该应用程序由一个单一组成 Service
, ,这实现了所需的接口。我跟着 导游 创建IPC通信。但是现在,我需要在系统上安装的所有服务,我的核心应用程序可以使用。我该怎么做呢?我的意思是,有什么方法可以标记我的 Service
具有某种标签的应用程序,然后是过滤结果,由 PackageManager#getInstalledPackages()
基于该标签值?这样做的常见做法是什么?
解决方案
创建您的活动将回应的自定义意图。然后,您可以使用PackageManager.QueryIntentServices获取匹配服务列表。您可以从ResolveInfos中嵌入的信息中获取软件包信息等。
理想情况下,您实际上将这些意图用于调用服务,但是您总是可以将它们用作标识标签,然后依靠您以前使用的绑定机制。
不隶属于 StackOverflow