1 votes

Comment faire en sorte que le système d'exploitation lance les applications au moment du démarrage ?

J'utilise Android 4.3 Jelly Bean sur un Samsung Galaxy SIII.

J'essaie de comprendre comment configurer des applications telles que Skype pour qu'elles démarrent automatiquement une fois que le système est passé par le processus d'amorçage, qu'il a fini de démarrer et qu'il s'est mis en marche. J'aimerais pouvoir le faire via une application qui ne nécessite pas que mon appareil soit rooté, si possible. Lorsque je consulte les informations relatives à Skype dans le gestionnaire d'applications par défaut, je constate que l'application Skype utilise l'autorisation "Exécuter au démarrage", ce qui signifie qu'il devrait être possible de configurer cette application pour qu'elle s'exécute au démarrage, mais je n'ai pas trouvé de case à cocher à cet effet sur cet écran, ni dans les paramètres de l'application Skype. Une situation similaire peut se produire avec d'autres applications.

Ce poste traite de la prévention du démarrage des applications et mentionne des applications tierces utiles telles que Gestionnaire d'exécution automatique qui semble se préoccuper principalement d'empêcher les applications de démarrer et de redémarrer une fois qu'elles ont été tuées, ou du moins c'est ce que je déduis de la description de l'application sur le Play Store, et Autostarts qui déclenche qui gère les applications qui sont déclenchées par des événements.

Voici donc mes questions :

  • Pourquoi n'y a-t-il pas une application native préinstallée de gestion du démarrage sur Android pour contrôler les applications qui doivent démarrer par défaut et celles qui ne doivent pas démarrer ?

  • Si Skype requiert l'autorisation de "s'exécuter au démarrage" et qu'il n'existe aucun endroit dans le système d'exploitation ou dans l'application pour configurer une telle application afin qu'elle démarre automatiquement, alors à quoi sert cette autorisation ?

Gracias.

3voto

Milner Points 533

Il serait vraiment bien d'avoir un gestionnaire de démarrage livré avec le système, qui permette à l'utilisateur de décider ce qui doit être démarré et ce qui ne doit pas l'être. Mais ce n'est pas le cas, le fonctionnement est un peu différent :

Les applications disposant de l'autorisation de "s'exécuter au démarrage" peuvent enregistrer un "auditeur" pour l'application BOOT_COMPLETED que le système émet toujours lors de cet événement. Ils sont ainsi informés de l'événement et peuvent décider d'agir. Il peut s'agir de lancer un service d'arrière-plan qui continue à fonctionner, mais il peut aussi faire quelque chose de peu et quitter à nouveau le système.

IMHO Skype dispose d'une option pour vous connecter automatiquement après le démarrage, de sorte que vous êtes disponible pour les appels entrants. AFAIR, c'est même le comportement par défaut de l'application. S'il n'y a pas de service en arrière-plan pour cela, il pourrait s'enregistrer pour une messagerie dans le nuage, ce qui le "réveillerait" pour traiter les appels entrants. De cette façon, l'application n'a pas besoin de fonctionner en permanence en arrière-plan. En effet, l'application déclare également la fonction com.google.android.c2dm.permission.RECEIVE (C2DM signifie "Cloud 2 Device Messaging", qui est maintenant GCM = Google Cloud Messaging), ce qui pourrait être l'explication.


UPDATE :

Andrew T. a confirmé cela dans les commentaires :

J'ai finalement vérifié le manifeste Android de Skype en ouvrant son fichier APK ( base.apk ), et il y a en effet com.skype.android.push.DeviceBootReceiver avec filtre d'intention android.intent.action.BOOT_COMPLETED . Je n'ai pas cherché à savoir ce qu'il faisait. J'ai également oublié que le récepteur de radiodiffusion ne figure pas dans la liste des processus en cours d'exécution, comme l'a indiqué John (je peux le confirmer en tant que développeur). Donc, vous avez raison sur votre supposition :)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X