QuerybroadCastreceivers не находит приемников, зарегистрированных в RecisterReceiver

StackOverflow https://stackoverflow.com/questions/3862207

  •  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/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top