7 votes

Comment vérifier si un paquet est activé via le shell ?

J'ai écrit une tâche tasker pour activer/désactiver un paquet. Je sais que

adb shell pm enable com.android.contacts

activera le paquet et

adb shell pm disable com.android.contacts

le désactivera.

J'aimerais savoir s'il existe une commande shell qui me permettrait de savoir si un paquet est dans l'état activé/désactivé. Merci d'avance ! :)

16voto

Milner Points 533
pm list packages -d 2>/dev/null

listera tous les paquets désactivés, un par ligne, précédé du mot-clé package: - pour que la sortie ressemble à

package:com.android.exchange
package:com.android.email

Ainsi, si vous prenez cette sortie et la "grep" pour le nom du paquet en question, le paquet est activé si la sortie est "vide" et désactivé sinon. Alternativement, si vous voulez un nombre (0/1), vous pouvez utiliser la commande wc utilitaire :

pm list packages -d 2>/dev/null | grep com.android.exchange | wc -l

retournerait "1" dans l'exemple ci-dessus, ce qui signifie que le paquet com.android.exchange est désactivé. Cependant, il retournerait "0" si j'utilisais la commande grep pour com.foobar.app - ce qui ne signifie pas nécessairement que com.foobar.app est activé mais peut aussi signifier qu'il n'est tout simplement pas installé :) Donc, si vous voulez faire une vérification croisée, vous pouvez le faire en exécutant la même commande avec pm list packages -e (pour lister les paquets activés).

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