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

Я пытаюсь получить список приемников, которые обрабатывают 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 . Есть ли способ получить эту информацию?

Я переформатировал для людей. Используйте это и спасибо за вопрос.

 PackageManager packageManager = getPackageManager(); List<String> startupApps = new ArrayList<String>(); Intent intent = new Intent(Intent.ACTION_BOOT_COMPLETED); List<ResolveInfo> activities = packageManager.queryBroadcastReceivers(intent, 0); for (ResolveInfo resolveInfo : activities) { ActivityInfo activityInfo = resolveInfo.activityInfo; if (activityInfo != null) { startupApps.add(activityInfo.name); } }