Tâche Get App Info
Résumé
- Nom interne :
GetAppInfo - Catégorie : Package Manager
- Objectif : Récupérer les informations détaillées d'une application installée à partir de son nom de package : version, libellé, dates d'installation, SDK cible, taille de l'APK, et 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 App Info interroge le PackageManager Android pour un package donné et retourne toutes les métadonnées disponibles. Chaque information est écrite dans sa propre variable de sortie optionnelle — seules les sorties que vous renseignez sont stockées, les autres sont ignorées.
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 interroger n'importe quel package installé par son nom.
Si le package n'est pas installé, la tâche lève PACKAGE-MANAGER-ERROR-001.
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
Toutes les sorties sont optionnelles — laissez un champ vide pour l'ignorer.
| Champ | Type | Condition de déclenchement | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|
version_name_output |
String | Nom de version de l'app (ex. "2.5.1") |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
version_code_output |
Long | Code de version entier (ex. 150) |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
app_name_output |
String | Libellé d'affichage de l'app (ex. "WhatsApp") |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
first_install_output |
Long | Horodatage de première installation (ms) | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
last_update_output |
Long | Horodatage de dernière mise à jour (ms) | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
target_sdk_output |
Long | Niveau d'API SDK cible (ex. 34) |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
apk_size_output |
Long | Taille du fichier APK en octets | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
is_system_output |
String | "true" si app système, sinon "false" |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
is_enabled_output |
String | "true" si activée, sinon "false" |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
Exceptions
| Code | Condition de déclenchement |
|---|---|
PACKAGE-MANAGER-ERROR-001 |
Le package n'est pas installé sur l'appareil |
Diagramme d'exécution
flowchart TD
Start([▶ GetAppInfo]) --> Resolve[🔧 Résolution package_name]
Resolve --> Query[📦 PackageManager.getPackageInfo]
Query --> Found{Package trouvé ?}
Found -->|Non| Throw([❌ PACKAGE-MANAGER-ERROR-001])
Found -->|Oui| Read[📖 Lecture version, libellé, dates,\nSDK cible, taille APK, indicateurs]
Read --> Store[💾 Définir variables de sortie\nAppInfoTaskResult]
Store --> Success([✅ AppInfoTaskResult])
style Start fill:#e3f2fd
style Success fill:#c8e6c9
style Throw fill:#ffcdd2
style Query fill:#fff9c4
style Read fill:#f3e5f5
style Store fill:#c8e6c9
Fonctionnement :
- Résolution : le
package_nameest résolu avec le contexte AndroMate - Requête :
PackageManager.getPackageInfo()est appelé avec le nom de package - Vérification : si le package est introuvable, la tâche lève
PACKAGE-MANAGER-ERROR-001 - Lecture : version, libellé, horodatages, SDK cible, taille APK et indicateurs sont lus
- Stockage : chaque variable de sortie demandée est renseignée
- Résultat : retourne
AppInfoTaskResult
Exemples de code
Exemple 1 — Lire la version de WhatsApp
{
"GetAppInfo": [
{
"id": "1",
"title": "Version WhatsApp",
"package_name": "com.whatsapp",
"version_name_output": "$wa_version",
"version_code_output": "$wa_code"
}
]
}
Exemple 2 — Extraction complète des métadonnées
{
"GetAppInfo": [
{
"id": "2",
"title": "Infos complètes app",
"package_name": "com.instagram.android",
"app_name_output": "$name",
"version_name_output": "$ver",
"target_sdk_output": "$sdk",
"apk_size_output": "$size",
"is_system_output": "$is_sys",
"is_enabled_output": "$is_on"
}
]
}
Détail des paramètres d'entrée
package_name — Package cible
L'identifiant de package Android de l'app à inspecter.
- Doit être un nom de package valide et installé (ex.
com.whatsapp) - Supporte l'interpolation de variables (ex.
$target_pkg,${PKG}) - Si le package n'est pas installé, la tâche lève
PACKAGE-MANAGER-ERROR-001
Détail des paramètres de sortie
Toutes les variables de sortie sont optionnelles. Laissez un champ vide pour ne pas écrire cette valeur.
version_name_output — Nom de version
Chaîne de version lisible affichée aux utilisateurs (ex. "2.5.1").
version_code_output — Code de version
Entier monotone utilisé en interne pour comparer les mises à jour (ex. 150). Lu via getLongVersionCode().
app_name_output — Libellé de l'application
Le nom d'affichage de l'app tel qu'affiché dans le lanceur (ex. "WhatsApp").
first_install_output — Date de première installation
Horodatage en millisecondes depuis l'epoch de la première installation de l'app.
last_update_output — Date de dernière mise à jour
Horodatage en millisecondes depuis l'epoch de la dernière mise à jour. Égal à first_install_output si jamais mise à jour.
target_sdk_output — Version SDK cible
Le niveau d'API ciblé par l'app (ex. 34 pour Android 14).
apk_size_output — Taille de l'APK
Taille du fichier APK de base en octets.
is_system_output — Indicateur app système
"true" si l'app est une app système préinstallée (FLAG_SYSTEM), "false" sinon.
is_enabled_output — Indicateur activé
"true" si l'app est actuellement activée, "false" si désactivée.