2015-07-09 2 views
2

Я хочу отладить BroadcastReceiver, который должен запустить свой метод onReceive, когда запускается действие android.intent.action.BOOT_COMPLETED. Я прочитал несколько источников, какОтладка android.intent.action.BOOT_COMPLETED

но все пришли с решением для запуска

./adb shell am broadcast -a android.intent.action.BOOT_COMPLETED 

или

./adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c <CATEGORY> -n <PACKAGE_NAME>/<CLASS> 

Первый перезапуск устройства или эмулятора, но отладчик отключается. Второй не работает. Когда я вхожу

./adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME mypackage/.BootReceiver 

сообщение является

Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED cat=[android.intent.category.HOME] cmp=mypackage/.BootReceiver } 
Broadcast completed: result=0 

и ничего не происходит. Поэтому мой вопрос:

Есть ли способ отладки BroadcastReceiver, который запускается при возникновении android.intent.action.BOOT_COMPLETED?

Я использую Nexus 4 в качестве устройства, а также Nexus 4 в качестве эмулятора. Моя IDE - студия Android с версией 1.2.2.

+0

Если ничего другого вы не можете переместить в отладку printf - Напишите операторы в журнал и посмотрите, какие значения переменных при запуске, а не переходят через отладчик. –

ответ

1

Использование sendBroadcast() отправить радиопередачу вручную

Добавьте действие ("NameofAction") к приемнику в манифесте, а затем вручную использовать sendBroadcast (новый Intent ("NameofAction")) с имя, указанное в элементе-получателе в манифесте.

и в onReceive() проверить действие («NameofAction»).

+0

Вручную отправка широковещательной передачи для android.intent.action.BOOT_COMPLETED запрещена. – LucasMoody

+0

Я рассказывал о создании действия вручную «NameofAction» для целей тестирования и добавлял его в BOOT_COMPLETED приемник и запускал его вручную. – Syed