Tâche Is App Installed
Résumé
- Nom interne :
IsAppInstalled - Catégorie : Package Manager
- Objectif : Vérifier si une application est installée sur l'appareil. Oriente l'exécution du workflow :
truesi le package existe,falsesinon. - Type de tâche : Condition
Compatibilité
-
Version AndroMate minimale :
1.1.0 -
Version AndroMate maximale :
1.1.0 -
Android minimum :
Android 13 (API 33) -
Android testé maximum :
Android 16 (API 36) -
Permissions requises :
QUERY_ALL_PACKAGES
Description détaillée
La tâche Is App Installed vérifie la présence d'un package sur l'appareil via le PackageManager Android. Elle agit comme un nœud de condition : le workflow prend la branche true si le package est installé, et la branche false sinon.
Depuis Android 11 (API 30), les applications ne peuvent plus voir les autres packages installés par défaut (filtrage de visibilité des packages). AndroMate déclare la permission QUERY_ALL_PACKAGES pour pouvoir détecter n'importe quel package installé par son nom.
Cette tâche ne lève jamais d'exception — un package absent oriente simplement vers la branche false.
Paramètres d'entrée
| Paramètre | Type | Requis | Valeurs possibles / Règles | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|---|
package_name |
String | Oui | Nom de package Android valide (com.example.app) |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
Paramètres de sortie
C'est une tâche de type Condition — elle ne stocke pas de valeur. Elle oriente plutôt l'exécution du workflow :
| Condition | Prochaine étape |
|---|---|
| Le package est installé | Branche true |
| Le package n'est pas installé | Branche false |
Exceptions
Cette tâche ne lève pas d'exceptions. Un package absent oriente vers la branche false.
Diagramme d'exécution
flowchart TD
Start([▶ IsAppInstalled]) --> Resolve[🔧 Résolution package_name]
Resolve --> Query[📦 PackageManager.getPackageInfo]
Query --> Installed{Package installé ?}
Installed -->|Oui| TrueBranch([✅ branche true])
Installed -->|Non| FalseBranch([❌ branche false])
style Start fill:#e3f2fd
style TrueBranch fill:#c8e6c9
style FalseBranch fill:#ffcdd2
style Query fill:#fff9c4
Fonctionnement :
- Résolution : le
package_nameest résolu avec le contexte AndroMate - Requête :
PackageManager.getPackageInfo()est appelé - Branchement : si l'appel réussit → branche
true; s'il lèveNameNotFoundException→ branchefalse
Exemples de code
Exemple 1 — Brancher selon la présence de WhatsApp
{
"IsAppInstalled": [
{
"id": "1",
"title": "WhatsApp installé ?",
"package_name": "com.whatsapp"
}
]
}
Détail des paramètres d'entrée
package_name — Package cible
L'identifiant de package Android à vérifier.
- Doit être un nom de package valide (ex.
com.whatsapp) - Supporte l'interpolation de variables (ex.
$target_pkg,${PKG}) - Le package n'a pas besoin d'être installé — c'est exactement ce que cette tâche teste
Détail des paramètres de sortie
C'est une tâche de type Condition — elle ne stocke aucune variable de sortie. Le résultat pilote le branchement du workflow :
Branche true
Prise lorsque PackageManager.getPackageInfo() réussit (le package est installé).
Branche false
Prise lorsque le package est absent (NameNotFoundException).