1 votes

Les applications ne démarrent pas automatiquement sous Android 9.0 Pie

J'ai acheté un Blackview BV5900 bon marché fonctionnant sous Android 9.0 (je suppose qu'il s'agit d'une ROM personnalisée) car j'avais besoin de quelque chose de robuste et d'une longue autonomie de batterie à des fins de test. J'ai du mal à trouver une réponse à la question de savoir pourquoi les applications ne démarrent pas automatiquement quand elles sont censées le faire. L'application en question est principalement Grandstream Wave - Video qui est effectivement un client SIP. Elle démarre automatiquement et sans problème sur un vieux Samsung Galaxy V6.

J'ai essayé diverses applications à démarrage automatique pour voir si je pouvais contourner le problème, mais il semblerait qu'elles ne se chargent pas aussi bien au démarrage, et qu'elles n'accomplissent donc pas la tâche pour laquelle elles sont prévues. J'ai pris contact avec le fabricant et leur réponse est qu'il ne le fait pas.

Comme il s'agit d'un téléphone de test, je suis tout à fait heureux de l'utiliser. Bien que je sois complètement novice en matière d'Android, je suis sûr que je trouverai suffisamment d'informations pour commencer avec un peu de recherche sur Google.

Ce que je cherche, c'est un peu d'aide sur ce qu'il faut chercher et comment le trouver. D'après ce que j'ai pu comprendre, l'application recherche une BOOT_COMPLETE Je suppose donc qu'il est désactivé quelque part ? Toutes les réponses, s'il vous plaît supposez que je ne sais rien, vous aurez raison.

EDIT 11Mai2020

J'ai essayé la commande shell comme demandé aquí - pas de joie. Résultat de l'obus ci-dessous. Je ne sais pas si cela signifie simplement que je n'ai pas assez de privilèges pour l'exécuter ou qu'il est désactivé d'une manière ou d'une autre ?

Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED flg=0x400000 pkg=com.grandstream.wave }
Security exception: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=5834, uid=2000

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=5834, uid=2000
    at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:21774)
    at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:22411)
    at com.android.server.am.ActivityManagerShellCommand.runSendBroadcast(ActivityManagerShellCommand.java:690)
    at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:174)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:16434)
    at android.os.Binder.shellCommand(Binder.java:634) at android.os.Binder.onTransact(Binder.java:532)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3551)
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3397)
    at android.os.Binder.execTransact(Binder.java:731)

0voto

Lakindu Points 178

Cela ne constituerait pas une réponse complète à votre problème. Mais si vous pensez que la diffusion de BOOT_COMPLETED est désactivée pour une raison quelconque, vous pouvez essayer de l'envoyer manuellement en utilisant le shell adb et voir si votre application démarre.

Il est préférable d'envoyer la diffusion directement à votre application en spécifiant son nom de paquet. Si vous ne connaissez pas le nom du paquet de votre application, vous devez d'abord le trouver. Pour obtenir une liste de tous les paquets installés sur votre appareil, vous pouvez utiliser la commande suivante.

$ adb shell pm list packages

Après avoir trouvé le nom du paquet de votre application à partir de la sortie de la commande ci-dessus, vous pouvez utiliser la commande suivante pour envoyer la diffusion à votre application, et voir si elle démarre après avoir reçu la diffusion.

$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p <com.your.apps.package.name.comes.here>

Dans la commande ci-dessus, remplacez <com.your.apps.package.name.comes.here> avec le nom du paquet de votre application.

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