1 votes

Puis-je obtenir un nom de paquet d'application en tant que variable de Tasker lors d'un événement de mise à jour de paquet ?

J'essaie d'utiliser Tasker pour créer des notifications personnalisées avec AutoNotification avec le contexte d'événement de "Package Updated *". Mais ce dont j'ai vraiment besoin, c'est de savoir si, lorsqu'un paquet est mis à jour, le nom du paquet d'application mis à jour est transmis à une variable ? Je connais déjà l'intention de Package_Added à partir de cette autre question mais il ne dit rien sur le fait d'avoir une intention de Package_Updated.

2voto

Firelord Points 23064

Vous pouvez toujours employer adb à votre service pour faire la chasse par vous-même. Par exemple : après une mise à jour réussie d'une application, si vous exécutez immédiatement la commande suivante et suivez la section ACTIVITY MANAGER BROADCAST STATE (diffusion des activités dumpsys) vous tomberiez sur l'intention _Android.intent.action.PACKAGE_REPLACED_ . Vous observerez également que les données de cette intention contiennent le nom du paquet tant recherché.

adb shell dumpsys activity 

Sortie de démonstration pertinente :

#0: BroadcastRecord{dec5090 u0 android.intent.action.PACKAGE\_REPLACED}
    act=**android.intent.action.PACKAGE\_REPLACED** dat=**package:com.koushikdutta.backup** flg=0x4000010 (has extras)
    extras: Bundle\[{android.intent.extra.UID=10185, android.intent.extra.REPLACING=true, android.intent.extra.user\_handle=0}

Quant à l'utilisation des informations dans Tasker, configurez votre profil et vos tâches comme suit :

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

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

    • Variables → Recherche de remplacement de variables

      • Variable : %intent_data
      • Recherche : package:
      • Tick One Match Only
      • tique Remplacer les correspondances
      • Remplacer par : ne touchez pas à cette option puisque nous voulons supprimer la correspondance.

        Le nom du paquet seul serait maintenant disponible pour la valeur de la variable %intent_data (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 (ce dernier requiert un accès Root)

    • App → Test App :

      • Type : Nom du paquet
      • Données : %intent_data
      • Stocker le résultat dans : %label

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

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

Devoirs à domicile si vous suivez les résultats de activité de dumpsys Vous noterez avec attention que l'information selon laquelle l'application a été mise à jour peut en fait être récupérée à partir de l'adresse suivante Android.intent.action.PACKAGE_ADDED seul.

En rapport : Obtenir le nom de la nouvelle application installée avec 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