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.
Réponse
Trop de publicités?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
- Action :
-
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.
- Variable :
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