2 votes

Obtenir le nom de la nouvelle application installée avec Tasker

J'essaie de mettre en place le projet Tasker suivant : lorsqu'une nouvelle application est installée sur l'un de mes appareils, envoyer une notification à tous les autres appareils avec le nom de l'application. Idéalement, si je trouve une API fonctionnelle, la tâche interrogera l'API pour le lien de l'application sur le Play Store en utilisant le nom.

Bref, ma question est la suivante : Est-il possible d'obtenir le nom de la nouvelle application installée avec Tasker ? Ou au moins le nom du paquet.

1voto

Firelord Points 23064

Oui, bien sûr, c'est possible. La méthode la plus simple est la méthode native, celle qu'utilisent les applications Android pour savoir quelle application a été installée sur le système. Elles obtiennent cette information en écoutant une intention de diffusion avec action android.intent.action.PACKAGE_ADDED . Les données qu'il transporte portent le nom de paquet.

A condition que vous ayez adb dans le PC, vous pouvez vérifier cette information par vous-même en installant une nouvelle application dans votre système puis en exécutant

adb shell dumpsys activity

Cherchez la chaîne android.intent.action.PACKAGE_ADDED sous la rubrique Émissions historiques [contexte]. Exemple :

#7: BroadcastRecord{426162e8 u0 **android.intent.action.PACKAGE\_ADDED**}
    act=android.intent.action.PACKAGE\_ADDED dat=**package:de.defim.apk.protectedapps** flg=0x8000010 (has extras)
    extras: Bundle\[{android.intent.extra.UID=10150, android.intent.extra.user\_handle=0}\]

Quant au Tasker, il permet d'écouter les émissions en tant que déclencheur. Configurez le Tasker comme ceci :

  • Profil : Événement → Système → Intention reçue

    • Action : android.intent.action.PACKAGE_ADDED
    • Schéma : package
    • laisser le reste intact
  • Tâche : (Actions) :

    • Variables → Fractionnement des variables

      • Nom : %intent_data
      • Séparateur : :

        Le nom du paquet sera maintenant enregistré dans la variable %intent_data2 (une variable locale). Utilisez-la où vous voulez.

    Pour obtenir l'étiquette de l'application, vous pouvez soit utiliser la fonctionnalité intégrée de Tasker soit utiliser aapt (nécessite un accès Root)

    • App → Test App :

      • Type : Nom du paquet
      • Données : %intent_data2
      • Stocker le résultat dans : %App_name

        L'étiquette de l'application peut maintenant être récupérée à partir de la variable %App_name .

Voir Accès aux données sur les intentions pour plus d'informations sur la gestion des intentions dans Tasker.

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