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