web-dev-qa-db-fra.com

Comment tester le récepteur de diffusion BOOT_COMPLETED dans l'émulateur

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.

41
Chirag

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

54
MKJParekh

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

  1. adb Shell

  2. 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.

enter image description here

Happy Coding!

41
Fred Ondieki

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
28
ejboy

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
2
Julio Rodrigues

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)

1
Fabian

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)
0
peter