Вопрос по android, broadcastreceiver, android-emulator – Как проверить BOOT_COMPLETED Приемник трансляции в эмуляторе

37

Я хочу проверитьBROADCAST RECEIVER с действиемBOOT_COMPLETED вemulator.

Есть ли способ проверить этот приемник вещания в эмуляторе? Как я могу перезапустить эмулятор, чтобы проверить этот приемник? есть ли прямая команда?

Заранее спасибо.

Я попытался использовать adb для отправки трансляции, и это не сработало для меня на Android O. Я получил исключение безопасности. Мне пришлось перезагрузить эмулятор, что я и сделал, удерживая значок кнопки питания и выбрав перезагрузку в графическом интерфейсе. Robert Wiebe

Ваш Ответ

4   ответа
40

это то, что вам нужно сделать, чтобы эмулировать загрузку, завершенную в Android Emulater, пока он работает: если выWindows Пользователь. То же самое относится и кLinux

STEPS: На вашей консоли типа

adb shell

am broadcast -a android.intent.action.BOOT_COMPLETED

Это все люди.see the diagram below for a detailed illustration.

enter image description here

Happy Coding!

Если вы хотите один вкладыш, этоadb shell su -c am broadcast -a android.intent.action.BOOT_COMPLETED
это будет работать на реальных устройствах?
поскольку ответ не включал строку дляWindows OS, использовать этот-adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
Получение java.lang.SecurityException: Отказ в разрешении: не разрешено отправлять трансляцию android.intent.action.BOOT_COMPLETED из pid = 203 99, uid = 2000
1

просто откройте командную строку и перейдите в папку, где находится ваш adb (если не в системном пути), и введите:

adb restart

(тогда вы можете прервать команду с помощью Strg - C, чтобы вернуть строку cmd)

adb reboot работает,adb restart: adb: использование: неизвестный перезапуск команды
53

To stop an emulator instance, just close the emulator's window.

И кStart/Restart ЭтоStart from AVD Manager of Eclipse и ваш BroadcastReceiver с действием BOOT_COMPLETE будет вызванfor sure

Вы можете также начать AVD, сCMD go to Tools of AndroidSDK и дать эту командуE:\android-sdk-windows\tools>emulator -avd AVDNAMEHERE

кSend Broadcast from CMD Вы можете использовать эту команду.

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n package_name/class_name

Узнайте больше о Android Emulator:Эмулятор Android а такжеИспользование эмулятора

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED вполне достаточно для перезагрузки устройства.
он также перезагружает Nexus 6 без дополнительных команд
К сожалению, отправка этой трансляции приводит к тому, что мой Nexus 5really перезагрузите вместо того, чтобы просто передать это сообщение. В результате отладчик отключается. / sigh отправка таких трансляций должна быть доступна для разработчика более простым в использовании способом :-( :-(
25

если BOOT_COMPLETED получен дважды, вместо этого ограничьте трансляцию только вашим пакетом:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p com.example.package
Ошибка опции -p для меня иdeveloper.android.com/tools/help/shell.html#IntentSpec не упоминает это?
Как ни странно, я скопировал команду, не добавляя имя пакета, надеясь, что смогу увидеть некоторые приложения & quot; реально & quot; плохое поведение. Это убило почти все другие приложения и несколько перезагрузило устройство. Стоило того... :)
Поддерживаются не все версии Android -p, вы можете попробовать -n имя_пакета / имя_класса

Похожие вопросы