Ну, я много искал. Люди говорят, что мне нужно закрыть окно эмулятора, чтобы закрыть его. Однако мне нужно перезагрузить эмулятор, чтобы поймать ACTION_BOOT_COMPLETE
D моим BroadcastReceiver
.
Как я могу это сделать?
Вы можете использовать следующую команду из adb:
adb shell am activity/service/broadcast -a ACTION -c CATEGORY -n NAME
например:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n package_name/class_name
Обратите внимание, что имена классов и имена пакетов должны быть такими, как определено в манифесте.
Это приведет к желаемому намерению, направленному только на тот компонент, который вы хотите (в противном случае система будет сходить с ума при отправке BOOT_COMPLETED …)
Или другим способом (также из командной строки):
adb shell stop adb shell start
Чтобы эмулировать действие трансляции, вы можете подключиться через adb к эмулятору / устройству и открыть оболочку:
adb shell
Затем вы можете транслировать действие, которое хотите проверить:
am broadcast -a android.intent.action.BOOT_COMPLETED
Обратите внимание, что в последних версиях Android трансляция действия * android.intent.action.BOOT_COMPLETED * фактически перезагрузит ваш эмулятор / устройство.
Во-первых, убедитесь, что USB-отладка включена из эмулятора:
нажмите:
Из командной строки:
adb -e reboot
РЕДАКТИРОВАТЬ:
Это определенно не работает … очень странно. Я протестировал его и не смог перезагрузить эмулятор. Это просто зависает.
При использовании tubemate
на вкладке Android я не смог загрузить видео с error:host interupped
и т. Д. Я использовал следующие команды:
adb shell stop adb shell start
И приложение начало загружать видео.
Эмуляторы имеют кнопку включения / выключения – просто нажмите
И другим способом:
Если вы запустите свой эмулятор и установите флажок «стереть пользовательские данные», вы также получите это уведомление, когда загрузка будет завершена.