Eh bien, j'ai beaucoup cherché. Les gens disent que je dois fermer la fenêtre de l'émulateur pour le fermer. Cependant, je dois redémarrer l'émulateur pour attraper ACTION_BOOT_COMPLETE
D par mon BroadcastReceiver
.
Comment puis je faire ça?
Vous pouvez utiliser la commande suivante depuis adb:
adb Shell am activity/service/broadcast -a ACTION -c CATEGORY -n NAME
par exemple:
adb Shell am broadcast -a Android.intent.action.BOOT_COMPLETED -c Android.intent.category.HOME -n package_name/class_name
Notez que le nom de classe et les noms de package doivent être tels que définis dans le manifeste.
Cela générera l’intention souhaitée, dirigée uniquement vers le composant souhaité (sinon, votre système deviendra fou avec BOOT_COMPLETED envoyé ...)
Ou d'une autre manière (également à partir de la ligne de commande):
adb Shell stop
adb Shell start
Pour émuler une action de diffusion, vous pouvez vous connecter via adb à l’émulateur/périphérique et ouvrir un shell:
adb Shell
Ensuite, vous pouvez diffuser l'action que vous souhaitez tester:
am broadcast -a Android.intent.action.BOOT_COMPLETED
Veuillez noter que, dans les dernières versions d'Android, la diffusion de l'action * Android.intent.action.BOOT_COMPLETED * réinitialisera votre émulateur/périphérique.
Tout d’abord, assurez-vous que le débogage USB est activé depuis l’émulateur:
cliquez sur:
à partir d'une ligne de commande:
adb -e reboot
MODIFIER:
Cela ne fonctionne vraiment pas… très étrange. Je l'ai testé et je n'ai pas pu faire redémarrer l'émulateur. Ça ne fait que pendre.
Lors de l'utilisation de tubemate
sur l'onglet Android, le téléchargement de la vidéo avec le error:Host interupped
etc. n'a pas réussi. J'ai utilisé les commandes suivantes:
adb Shell stop
adb Shell start
et l'application a commencé à télécharger des vidéos.