Envoyer un SMS
Résumé
- Nom interne :
SendSMS - Catégorie : SMS
- Objectif : Envoyer un message SMS en texte brut à un numéro de téléphone depuis l'appareil Android.
- Type de tâche : Normale
Compatibilité
-
Version minimale AndroMate :
1.1.0 -
Version maximale AndroMate :
1.1.0 -
Android minimum :
Android 13 (API 33) -
Android maximum testé :
Android 16 (API 36) -
Constructeurs supportés :
- ✅ Samsung (One UI 6.x / 7.x / 8.x)
- ✅ Google Pixel (Android Stock)
- ⚠️ Autres constructeurs — non testés
-
Permissions requises :
SEND_SMS
Description détaillée
La tâche Envoyer un SMS envoie un message SMS en texte brut à un numéro de destination via l'API Android SmsManager. Le message est envoyé depuis la carte SIM par défaut de l'appareil.
Avant l'envoi, la tâche valide :
- Le numéro de destination (
msisdn) doit respecter le format international E.164 (ex.+33612345678). Les numéros sans indicatif pays+ou en format local sont rejetés. - Le corps du message (
message_body) ne doit pas être vide. - Le corps du message ne doit pas dépasser 100 caractères.
Paramètres d'entrée
| Paramètre | Type | Obligatoire | Valeurs possibles | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|---|
msisdn |
String | Oui | Format E.164 : + suivi de 2 à 15 chiffres (ex. +33612345678) — supporte les références $variable |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
message_body |
String | Oui | Toute chaîne ≤ 100 caractères — supporte les références $variable |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
Format E.164
Le champ msisdn doit respecter strictement le format international E.164 :
- Commence par
+suivi de l'indicatif pays - Suivi du numéro d'abonné
- Longueur totale : 2 à 15 chiffres après
+
Exemples valides : +33612345678, +12125551234, +447911123456
Exemples invalides : 0612345678 (pas d'indicatif pays), 33612345678 (manque le +), +1 (trop court)
Paramètres de sortie
Cette tâche ne produit aucune variable de sortie. Elle retourne VoidResult.
| Champ | Type | Condition de déclenchement | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|
| — | VoidResult | Toujours | — | — | — |
Exceptions
| Code | Nom de l'exception | Description |
|---|---|---|
SMS-TASK-001 |
MSISDN invalide | La valeur msisdn ne respecte pas le format E.164 (+ suivi de 2 à 15 chiffres). |
SMS-TASK-002 |
Corps du message vide | Le message_body est vide ou blanc. |
SMS-TASK-003 |
Corps du message trop long | Le message_body dépasse la limite de 100 caractères. |
ERROR-000 |
Autre erreur | Une erreur runtime inattendue s'est produite pendant l'exécution. |
Diagramme d'exécution
Le diagramme suivant illustre l'implémentation réelle basée sur le code Android :
flowchart TD
Start([Démarrer SendSmsTask]) --> ResolveParams[🔄 Résoudre msisdn + message_body\ndepuis le contexte workflow]
ResolveParams --> ValidateMsisdn{msisdn correspond\nau regex E.164 ?}
ValidateMsisdn -->|Non| E1[❌ SMS-TASK-001\nMSISDN invalide]
ValidateMsisdn -->|Oui| ValidateBody{message_body\nnon vide ?}
ValidateBody -->|Non| E2[❌ SMS-TASK-002\nCorps du message vide]
ValidateBody -->|Oui| ValidateLength{longueur message_body\n≤ 100 ?}
ValidateLength -->|Non| E3[❌ SMS-TASK-003\nMessage trop long]
ValidateLength -->|Oui| Send[📤 SmsManager.sendTextMessage\nmsisdn, message_body]
Send --> Success([✅ VoidResult])
E1 --> Error([❌ Exception])
E2 --> Error
E3 --> Error
style Start fill:#e3f2fd
style Success fill:#c8e6c9
style Error fill:#ffcdd2
style E1 fill:#ffcdd2
style E2 fill:#ffcdd2
style E3 fill:#ffcdd2
style ResolveParams fill:#fff9c4
style Send fill:#c8e6c9
Comment ça fonctionne :
- Résoudre les paramètres :
msisdnetmessage_bodysont résolus depuis le contexte workflow - Valider le MSISDN : vérification du format E.164 — lève
SMS-TASK-001si invalide - Valider le corps : vérification que le message n'est pas vide — lève
SMS-TASK-002si vide - Valider la longueur : vérification que le message ne dépasse pas 100 caractères — lève
SMS-TASK-003si trop long - Envoyer : délègue à
SmsManager.sendTextMessage()via l'API téléphonie Android - Résultat : retourne
VoidResulten cas de succès
Exemples de code
Exemple 1 — Envoyer un message statique
{
"SendSMS": [
{
"id": "1",
"title": "Envoyer SMS de test",
"msisdn": "+33612345678",
"message_body": "Message de test AndroMate"
}
]
}
Exemple 2 — Envoyer avec des variables workflow
{
"SendSMS": [
{
"id": "2",
"title": "Rapporter le résultat du ping",
"msisdn": "$numero_cible",
"message_body": "Résultat ping : $ping_output"
}
]
}
Détails des paramètres d'entrée
1. Paramètre d'entrée : msisdn
Le numéro de téléphone auquel envoyer le SMS. Doit strictement respecter le format international E.164 :
- Commence par +
- Suivi de l'indicatif pays (1 à 3 chiffres)
- Suivi du numéro d'abonné
- Total : 2 à 15 chiffres après +
Supporte les références $variable_workflow.
| Valide | Invalide |
|---|---|
+33612345678 |
0612345678 (pas d'indicatif pays) |
+12125551234 |
33612345678 (manque le +) |
+447911123456 |
+1 (trop court) |
- Défaut :
""— déclencheSMS-TASK-001si non valide E.164
2. Paramètre d'entrée : message_body
Le contenu du SMS à envoyer. Supporte les références $variable_workflow — résolues à l'exécution.
- Longueur maximale : 100 caractères — déclenche
SMS-TASK-003si dépassé - Ne peut pas être vide — déclenche
SMS-TASK-002si vide - Supporte les variables : Oui