按意图过滤器类别过滤服务

时间:2020-02-04 12:37:13

标签: android android-source

我正在通过在AOSP之上编写启动器来学习android,并寻找从category中包含某些intent-filter的安装包中获取所有服务的方法

我当前的做法是

final PackageManager pm = getPackageManager();
int flags = PackageManager.GET_INTENT_FILTERS | PackageManager.GET_SERVICES;
List<PackageInfo> packages = pm.getInstalledPackages(flags);

for (PackageInfo packageInfo : packages) {
  Log.d(TAG, "Installed package: " + packageInfo.packageName);

  for (ServiceInfo service : packageInfo.services) {
    Log.d(TAG, "Service: " + service.packageName);
    // ???
  }
}

Manifest.xml中定义的服务示例:

<service
    android:name=".ComplicationIntentService"
    android:exported="true">
    <intent-filter>
        <category android:name="my.intent.CATEGORY" />
    </intent-filter>
</service>

ServiceInfo对象似乎不包含有关意图过滤器的信息,一些搜索似乎表明这没有实现

有什么想法吗?

0 个答案:

没有答案