1 votes

Exécuter des commandes am dans le terminal sans utiliser su

Android : JB 4.2.2

J'essaie de lancer des applications Android à partir de l'émulateur de terminal en utilisant la fonction am commande. Quand j'ai essayé l'application émulateur de terminal du téléphone, elle m'a donné une erreur :-

java.lang.SecurityException: Permission Denial: startActivity asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
    at android.os.Parcel.readException(Parcel.java:1425)
    at android.os.Parcel.readException(Parcel.java:1379)
    at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:1906)
    at com.android.commands.am.Am.runStart(Am.java:494)
    at com.android.commands.am.Am.run(Am.java:109)
    at com.android.commands.am.Am.main(Am.java:82)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235)
    at dalvik.system.NativeStart.main(Native Method)

Si je passe en mode racine, la commande am fonctionne. Une idée sur la façon d'obtenir am pour lancer le navigateur sans faire un su dans l'émulateur de terminal ?

4voto

Andy Brudtkuhl Points 1714

Il suffit d'ajouter le --user 0 à votre am commandement.

-2voto

J'ai essayé de démarrer le service à partir du terminal et j'ai obtenu le même résultat. Dans mon cas, j'ai simplement ajouté des marques de qoutation et cela m'a aidé.

su -c 'am startservice -n "com.example.app/.YourSe-rvice" -e 'extra' "valeur"'

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