Aller au contenu

Tâche Get Installed Apps

Résumé

  • Nom interne : GetInstalledApps
  • Catégorie : Package Manager
  • Objectif : Lister toutes les applications installées sur l'appareil sous forme de tableau JSON. Chaque entrée contient le nom de package, le libellé, la version, et les indicateurs système/activé.
  • Type de tâche : Normale

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 Get Installed Apps énumère tous les packages de l'appareil via PackageManager.getInstalledPackages() et produit un tableau JSON. Les applications système sont exclues par défaut ; activez include_system pour les inclure.

La sortie est légère — elle ne lit pas la taille de l'APK par application (ce qui nécessiterait un accès au système de fichiers pour chaque package), gardant la tâche rapide même sur des appareils avec des centaines d'applications.

Depuis Android 11 (API 30), les applications ne peuvent plus énumérer les autres packages par défaut (filtrage de visibilité des packages). AndroMate déclare la permission QUERY_ALL_PACKAGES pour que la liste complète soit visible.


Paramètres d'entrée

Paramètre Type Requis Valeurs possibles / Règles Compatibilité Android Compatibilité AndroMate Défaut
include_system Boolean Non true pour inclure les applications système préinstallées Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 false

Paramètres de sortie

Champ Type Condition de déclenchement Compatibilité Android Compatibilité AndroMate Défaut
json_array_output Tableau JSON Toujours en cas de succès — tableau d'objets app Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 <ANDROMATE_NULL_VALUE>

Structure d'un élément du tableau

Chaque élément de json_array_output a la forme suivante :

{
  "packageName": "com.whatsapp",
  "appName": "WhatsApp",
  "versionName": "2.24.1",
  "versionCode": 24001,
  "isSystemApp": false,
  "isEnabled": true
}

Exceptions

Cette tâche ne lève pas d'exceptions. Si aucune application ne correspond, un tableau JSON vide est retourné.


Diagramme d'exécution

flowchart TD
    Start([▶ GetInstalledApps]) --> List[📦 getInstalledPackages]

    List --> Loop[🔁 Pour chaque package]

    Loop --> SystemCheck{App système et\ninclude_system = false ?}

    SystemCheck -->|Ignorer| Loop
    SystemCheck -->|Garder| Build[🧩 Construire objet JSON\npackage, nom, version, indicateurs]

    Build --> Loop

    Loop --> Store[💾 Définir json_array_output\nJsonArrayTaskResult]

    Store --> Success([✅ JsonArrayTaskResult])

    style Start fill:#e3f2fd
    style Success fill:#c8e6c9
    style List fill:#fff9c4
    style Build fill:#f3e5f5
    style Store fill:#c8e6c9

Fonctionnement :

  1. Liste : getInstalledPackages() retourne tous les packages
  2. Filtrage : les applications système sont ignorées sauf si include_system est true
  3. Construction : un objet JSON est construit pour chaque app (package, libellé, version, indicateurs)
  4. Stockage : le tableau JSON est écrit dans json_array_output
  5. Résultat : retourne JsonArrayTaskResult

Exemples de code

Exemple 1 — Lister uniquement les applications utilisateur

{
  "GetInstalledApps": [
    {
      "id": "1",
      "title": "Lister apps utilisateur",
      "include_system": false,
      "json_array_output": "$apps"
    }
  ]
}

Exemple 2 — Inclure les applications système

{
  "GetInstalledApps": [
    {
      "id": "2",
      "title": "Lister toutes les apps",
      "include_system": true,
      "json_array_output": "$all_apps"
    }
  ]
}

Détail des paramètres d'entrée

include_system — Inclure les applications système

Contrôle si les applications système préinstallées apparaissent dans le résultat.

  • false (défaut) : seules les applications installées par l'utilisateur sont listées
  • true : les applications système (celles avec FLAG_SYSTEM) sont également incluses
  • Supporte l'interpolation de variables (ex. $with_system)

Détail des paramètres de sortie

json_array_output — Liste des applications installées

Stocke la liste complète des applications installées sous forme de tableau JSON dans la variable de workflow spécifiée. Chaque élément est un objet :

Clé Type Description
packageName String Identifiant de package (ex. com.whatsapp)
appName String Libellé d'affichage (ex. "WhatsApp")
versionName String Version lisible (ex. "2.24.1")
versionCode Number Code de version entier (ex. 24001)
isSystemApp Boolean true si app système préinstallée
isEnabled Boolean true si l'app est activée

Le tableau peut ensuite être traité avec la tâche JSON Object Operation (ex. lire sa taille, itérer, extraire un champ).


Exemple JSON complet

{
  "GetInstalledApps": [
    {
      "id": "1",
      "title": "Get Installed Apps",
      "include_system": false,
      "json_array_output": "$INSTALLED_APPS"
    }
  ]
}