Intent — Lancement d’Intent Android
Résumé
- Nom interne :
INTENT - Catégorie : Interaction système Android
- But : Construire et exécuter un
IntentAndroid pour démarrer une activité ou envoyer un broadcast. - Type de tâche : Normale
Cette tâche permet à un workflow AndroMate d’interagir avec le système Android et les applications installées :
ouvrir des écrans (Settings, app spécifique, etc.) ou envoyer des évènements broadcast personnalisés.
Compatibilité
- Version AndroMate minimale :
1.1.0 - Version AndroMate maximale :
1.1.0 - Android minimum :
Android 13 (API 33) - Android maximum testé :
Android 16 (API 36)
Constructeurs supportés
- ✅ Tous les constructeurs supportés par AndroMate (comportement dépend du firmware)
Permissions nécessaires
Selon la cible de l’Intent, Android peut exiger des permissions spécifiques :
- Démarrer certaines activités système ou OEM peut nécessiter des autorisations particulières
- L’envoi de certains broadcasts est restreint ou bloqué sur les versions Android récentes
Description détaillée
La tâche Intent construit un Intent Android à partir des paramètres fournis, résolus dynamiquement par le contexte AndroMate (AndroMateContext).
Deux modes d’exécution sont supportés :
| ActionType | Description |
|---|---|
Start Activity |
Lance une activité via Context.startActivity() |
Send Broadcast |
Envoie un broadcast via Context.sendBroadcast() |
Les paramètres peuvent contenir des variables (ex : ${PKG_NAME}) qui seront résolues avant exécution.
Paramètres d’entrée
| Paramètre | Type | Obligatoire | Valeurs possibles / Règles | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|---|
Action |
String | Non | Toute action d’Intent valide (android.intent.action.* ou custom) |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
PackageName |
String | Non | Nom de package Android valide (com.example.app) |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
ClassName |
String | Non | Nom de classe complet (com.example.app.MainActivity) |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
Data |
String | Non | URI de données (tel:, geo:, package:, etc.) |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
ActionType |
Enum / String | Oui | Start Activity ou Send Broadcast |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | — |
Paramètres de sortie
La tâche Intent ne retourne pas de données (pas de stdout/stderr, pas de variables de sortie).
Son but est d’effectuer l’action système, pas de produire un contenu.
Détail des paramètres
1. ActionType
Définit le mode d’exécution de la tâche.
Start Activity: lance une activité cible viacontext.startActivity(intent)avec les flags :FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TASKSend Broadcast: envoie un broadcast viacontext.sendBroadcast(intent).
Cette valeur est lue depuis le champ JSON ActionType et stockée dans un AndromateString.
Exemple
ou
2. Action
Représente la chaîne d’action de l’Intent (équivalent à Intent.setAction(String)).
Exemples courants :
android.settings.SETTINGSandroid.intent.action.VIEWcom.example.CUSTOM_EVENT
Si aucune action n’est fournie, l’Intent peut encore être valide si un PackageName + ClassName sont fournis (Intent explicite).
Exemple
3. PackageName
Spécifie le package Android cible.
Utilisé pour construire un Intent explicite avec un couple (PackageName, ClassName).
- Doit être un nom de package valide, par exemple :
com.android.settingscom.example.app
Si le PackageName est vide, Android tentera une résolution implicite de l’Intent (selon l’Action et les filtres d’intent des apps).
Exemple
4. ClassName
Nom de classe complètement qualifié de l’activité cible.
- Utilisé seulement si
PackageNameest renseigné - Doit inclure le package complet, par exemple :
com.android.settings.Settingscom.example.app.ui.MainActivity
Si PackageName est vide, ClassName est ignoré lors de la construction de l’Intent.
Exemple
5. Data
Chaîne représentant une URI de données qui sera associée à l’Intent (équivalent à Intent.setData(Uri) après parsing).
Exemples typiques :
tel:+21690000000→ composer un numéropackage:com.example.app→ cibler un package (désinstallation, détails, etc.)geo:36.8065,10.1815→ localisation géographique
Si vide, aucune donnée n’est associée à l’Intent.
Exemple
Comportement d’exécution
- Construction de l’Intent via
intent::setAction setPackageName setClassName - Si la construction échoue → un message d’erreur est loggé dans
ReportSection - Si l’Intent est valide :
- Si
ActionType == "Start Activity"→context.startActivity(intent)avec flags NEW_TASK + CLEAR_TASK - Si
ActionType == "Send Broadcast"→context.sendBroadcast(intent)
En cas d’échec d’exécution, une AndromateException est levée avec un type spécifique.
Exceptions
| Code | Exception Name | Description |
|---|---|---|
| Intent-ERROR-001 | INTENT_START_ACTIVITY_ERROR | Impossible de démarrer l’activité |
| Intent-ERROR-002 | INTENT_SEND_BROADCAST_ERROR | Impossible d’envoyer le broadcast |
Ces codes sont définis dans AndromateExceptionTypes et peuvent être remontés au moteur d’exécution AndroMate.
Exemple JSON complet
{
"Intent": [
{
"id": "50",
"title": "Open Android Settings",
"Action": "android.settings.SETTINGS",
"PackageName": "com.android.settings",
"ClassName": "com.android.settings.Settings",
"Data": "",
"ActionType": "Start Activity"
},
{
"id": "51",
"title": "Send custom broadcast",
"Action": "com.example.CUSTOM_EVENT",
"PackageName": "com.example.app",
"ClassName": "",
"Data": "",
"ActionType": "Send Broadcast"
}
]
}