2016-01-11 2 views
0

Есть ли способ «Сканировать» Все приложения для зарегистрированного BroadCastReceiver для определенного действия & получить имя класса, например, Экран Экран Вкл./Выкл. (Если для root не требуется никаких проблем)?Зарегистрированный BroadCast Receiver в Android

Благодаря

ответ

0

Создать нужный Intent. Используйте PackageManager and queryBroadcastReceivers(), чтобы узнать, кто все отвечает на это Intent, по крайней мере, для зарегистрированных зарегистрированным приемником. Я не знаю, возвращает ли PackageManager приемники, зарегистрированные через registerReceiver(), и поскольку это единственный тип приемника, который работает с ACTION_SCREEN_OFF и ACTION_SCREEN_ON, возможно, вы не сможете получить данные для этих конкретных действий.

+0

Спасибо, а затем, как получить класс Имя этого пакета? Я предполагаю, что Root необходим, потому что с LolliPop мы больше не можем получить имя класса запущенной задачи, но есть ли способ получить его (имя класса приемника)? моя цель, наконец, состоит в том, чтобы временно отключить этот приемник. –

+0

@SmokCol: «Как получить название класса этого пакета?» - вы получаете это через объекты 'ResolveInfo', которые возвращаются' queryBroadcastReceivers() '. «Моя цель, наконец, состоит в том, чтобы отключить временный приемник» - *, который * невозможен, за исключением специального ПЗУ или, возможно, корневого устройства. – CommonsWare

Смежные вопросы