QuerybroadCastreceivers не находит приемников, зарегистрированных в RecisterReceiver
-
27-09-2019 - |
Вопрос
Мне нужно выяснить, какие широковещательные приемники могут обрабатывать данный намерение.
Кажется, что QuerybroadCastreceivers () не возвращает приемники, зарегистрированные в коде, используя Recisterreceiver () Но только приемники объявлены в Androidmanifest.xml..
Это поведение по дизайну?
Любой другой способ найти все Установлены приемники для некоторого намерения?
Спасибо.
Решение
Похоже, это невозможно обнаружить приемники, зарегистрированные в коде, согласно этому недавнему сообщению в списке рассылки: http://groups.google.com/group/android-developers/msg/5fd1cdb24b2a6760.
Это разочаровывает, когда я искал способ сделать то же самое.
Другие советы
Если получатели, которые вы заинтересованы в том, вы можете использовать SendorderedBroadcast. вместо обычной трансляции.
Это делает трансляцию для всех зарегистрированных приемников один за другим, в соответствии с приоритетом, и, наконец, для вашего прилагаемого приемника широковещания, который в соответствии с результатом / данными передан ему, может выяснить, какие ресиверы обрабатывали это до него.
Вы можете проверить этот пример проекта, который использует этот метод:http://www.mannaz.at/codebase/android-activity-foreground-surveillance/