Подтвердить что ты не робот

Как протестировать BOOT_COMPLETED широковещательный приемник в эмуляторе

Я хочу проверить BROADCAST RECEIVER на Action BOOT_COMPLETED в emulator.

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

Спасибо заранее.

4b9b3361

Ответ 1

В эмуляторе нет кнопки питания, например Devices, So

Чтобы остановить экземпляр эмулятора, просто закройте окно эмулятора.

И Для Start/Restart он Начните с AVD Manager Eclipse, и ваш транслятор BroadcastReceiver с действием BOOT_COMPLETE будет вызван наверняка

Вы также можете запустить AVD другим способом, From CMD перейти в Инструменты AndroidSDK и передать этот комманд E:\android-sdk-windows\tools>emulator -avd AVDNAMEHERE

В Отправить трансляцию из CMD вы можете использовать эту команду.

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n имя_пакета/class_name


Подробнее об Android-эмуляторе: Android-эмулятор и Использование эмулятора

Ответ 2

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

STEPS. На вашем типе консоли

  • adb shell

  • am broadcast -a android.intent.action.BOOT_COMPLETED

Это все люди. см. диаграмму ниже для подробной иллюстрации.

enter image description here

Счастливое кодирование!

Ответ 3

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

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p com.example.package

Ответ 4

Если вы используете ароматы, будьте осторожны с обозначением ярлыка компонента ..

Пример

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.companyname.develop/com.companyname.notification.RescheduleLocalNotificationsAtBootReceiver

Ответ 5

Чтобы перезапустить эмулятор, просто откройте свою командную строку и перейдите в папку, в которой находится ваш adb (если не в системном пути), и введите:

adb restart

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

Ответ 6

На моем эмуляторе Lollipop мне нужно было работать от имени пользователя root:

adb shell su root am broadcast -a android.intent.action.BOOT_COMPLETED

Без рута команда не выполняется - диспетчер аварий не отправляет широковещательную рассылку:

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

Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED }
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=26595, uid=2000
    at android.os.Parcel.readException(Parcel.java:1684)
    at android.os.Parcel.readException(Parcel.java:1637)
    at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3537)
    at com.android.commands.am.Am.sendBroadcast(Am.java:772)
    at com.android.commands.am.Am.onRun(Am.java:404)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
    at com.android.commands.am.Am.main(Am.java:121)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)