2 votes

L'appel à l'intention du service échoue avec "not found" (introuvable).

Je veux lancer une intention de service d'une application (com.urbandroid.lux). Selon le développeur, il existe une intention de service "com.urbandroid.lux.TwilightService" qui peut être appelée avec un extra "toggle"/"toggle" (chaîne).

Mais quoi que je fasse, j'obtiens toujours une erreur "Not found". Par exemple, en utilisant adb en tant que Root :

# am startservice -c "" --es toggle toggle com.urbandroid.lux com.urbandroid.lux.TwilightService
Starting service: Intent { act=android.intent.action.MAIN cat=[] pkg=com.urbandroid.lux (has extras) }
Error: Not found; no service started.
#

J'ai aussi essayé d'utiliser Tasker. Avec "adb logcat", j'obtiens une erreur similaire :

W/ActivityManager( 1402): Unable to start service Intent { act=com.urbandroid.lux.TwilightService pkg=com.urbandroid.lux (has extras) } U=0: not found

Maintenant j'ai utilisé "aapt dump xmltree lux.apk AndroidManifest.xml" pour vérifier l'existence de l'intention. Comme on peut le voir, elle est bien là (ligne 55-57) :

http://pastebin.com/31NqrSuN

J'ai essayé toutes les combinaisons (slashs/points en tête/traîneaux, appels différents, ...) auxquelles je pouvais penser. Mais l'erreur est toujours la même.

Y a-t-il quelque chose en particulier que je fais mal ? Qu'est-ce qui n'est pas trouvé ici exactement ? L'application ? Le processus ? Le service ? Le point/méthode d'entrée ?

3voto

Andy Brudtkuhl Points 1714

Le nom du composant est spécifié comme le nom du paquet, puis une barre oblique, puis le nom de la classe. Donc, dans ce cas, la commande que vous voulez est :-

am startservice --es toggle toggle com.urbandroid.lux/.TwilightService

Pour référence future, et afin d'éviter toute confusion, le nom de l'entreprise est le suivant intention est le nom du message que vous envoyez pour lancer l'opération service . La chose que vous voulez lancer est un service, pas une "intention de service", et la chose que vous avez trouvée dans le manifeste est un service, pas une intention.

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