Aller au contenu

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 : true si le package existe, false sinon.
  • 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 :

  1. Résolution : le package_name est résolu avec le contexte AndroMate
  2. Requête : PackageManager.getPackageInfo() est appelé
  3. Branchement : si l'appel réussit → branche true ; s'il lève NameNotFoundException → branche false

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).


Exemple JSON complet

{
  "IsAppInstalled": [
    {
      "id": "1",
      "title": "Is App Installed",
      "package_name": "com.instagram.android"
    }
  ]
}