Je veux vérifier le BROADCAST RECEIVER
avec Action BOOT_COMPLETED
dans le emulator
.
Existe-t-il un moyen de vérifier ce récepteur de diffusion dans l'émulateur? Comment puis-je redémarrer l'émulateur pour vérifier ce récepteur? y a-t-il un commandement direct?
Merci d'avance.
Il n'y a pas de bouton d'alimentation dans l'émulateur comme les appareils, donc
Pour arrêter une instance d'émulateur, fermez simplement la fenêtre de l'émulateur.
Et à Start/Restart
it Démarrez à partir du gestionnaire AVD d'Eclipse et votre action BroadcastReceiver avec BOOT_COMPLETE sera appelée à coup sûr
Vous pouvez également démarrer AVD d'une autre manière, à partir de CMD
allez dans Outils d'AndroidSDK et donnez cette commande E:\Android-sdk-windows\tools>emulator -avd AVDNAMEHERE
Pour envoyer une diffusion à partir de CMD , vous pouvez utiliser cette commande.
adb Shell am broadcast -a Android.intent.action.BOOT_COMPLETED -c Android.intent.category.HOME -n package_name/class_name
En savoir plus sur Android Emulator: Android Emulator and sing Emulator
Fondamentalement, c'est ce que vous devez faire pour émuler le démarrage complet dans Android Emulater pendant qu'il est en cours d'exécution: en supposant que vous êtes un Windows Utilisateur. Il en va de même pour Linux
ÉTAPES : Sur votre type de console
adb Shell
suis diffusé -a Android.intent.action.BOOT_COMPLETED
C'est tout les amis. voir le schéma ci-dessous pour une illustration détaillée.
Happy Coding!
Certaines applications peuvent se comporter mal si BOOT_COMPLETED est reçu deux fois, au lieu de cela limiter la diffusion à votre package uniquement:
adb Shell am broadcast -a Android.intent.action.BOOT_COMPLETED -p com.example.package
Si vous utilisez des saveurs, soyez prudent avec le .
notation du raccourci du nom du composant.
Exemple
adb Shell am broadcast -a Android.intent.action.BOOT_COMPLETED -n com.companyname.develop/com.companyname.notification.RescheduleLocalNotificationsAtBootReceiver
Pour redémarrer l'émulateur, ouvrez simplement votre ligne de commande et basculez vers le dossier où se trouve votre adb (si ce n'est pas dans le chemin système) et entrez:
adb restart
(alors vous pouvez abandonner la commande avec Strg - C pour récupérer la ligne cmd)
Sur mon émulateur Lollipop, il me fallait exécuter en tant que root:
adb Shell su root am broadcast -a Android.intent.action.BOOT_COMPLETED
Sans root, la commande échoue - le gestionnaire d'alarmes n'envoie pas la diffusion:
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)