Получить фильтр намерений для получателей

Я пытаюсь получить список приемников, которые обрабатывают android.intent.action.BOOT_COMPLETED для других приложений.

Я могу получить только приложения с этим действием с помощью этого:

final PackageManager pm = getPackageManager();
final Intent intent = new Intent("android.intent.action.BOOT_COMPLETED");
final List<ResolveInfo> activities = pm.queryBroadcastReceivers(intent, 0);
for (ResolveInfo ri : activities) {
    Log.i(TAG, "app name: " + ri.loadLabel(pm));
}

Я могу получить список получателей с помощью этого кода:

final List<PackageInfo> packs = pm.getInstalledPackages(PackageManager.GET_RECEIVERS);
for (final PackageInfo p : packs) {
    ActivityInfo[] receivers = p.receivers;
    if (receivers != null) {
        for (ActivityInfo ai : receivers) {
            Log.i(TAG, "receiver: " + ai.name);
        }
    }                   
}

После получения получателей я не могу сказать, что такое фильтр намерений / действие. Если в приложении есть два приемника, мне нужно знать, какой из них обрабатывает android.intent.action.BOOT_COMPLETED . Есть ли способ получить эту информацию?

10
задан tshepang 1 May 2014 в 09:22
поделиться