Réception du numéro de l'appelant à partir d'un appel entrant
Tasker maintient un variable globale nommé Numéro d'appel ( %CNUM
) qui reflèterait le numéro de l'appelant pour l'appel entrant.
Si vous avez l'intention d'exécuter votre script lorsque l'appareil sonne, vous pouvez configurer le profil suivant :
- Profil : Événement → Téléphone → Sonnerie du téléphone → Priorité : la plus élevée
-
Tâche : (Actions) : Code → Exécuter le shell → Commande : sh FILE_PATH "%CNUM"
Remplacer FILE_PATH
avec le chemin de fichier absolu de votre script. Dans votre script, %CNUM
peut être reçu comme un argument en stockant $1
dans une variable. (Voir cette réponse par Bruce Ediger pour toute aide connexe).
Exemple de script :
#!/system/bin/sh
incoming_no="$1"
echo "$incoming_no" >> /sdcard/incoming_no.txt
Enregistrez le script et essayez de l'exécuter à partir d'une action dans ce profil. Pour un appel entrant, il créera ou ajoutera le fichier incoming_no.txt avec le numéro de l'appelant.
Note : Tasker supporte la création de variables globales, donc si vous n'avez pas l'intention d'exécuter votre script avec ce profil, utilisez l'action Variable → Variable Set pour stocker la valeur de %CNUM
dans une variable globale spécifique à l'utilisateur. Dès que le moment est venu, utilisez cette variable dans votre script à partir de Tasker.
Réception du numéro appelé à partir d'un appel sortant
Tasker n'a pas de support intégré pour cela, il me semble. Ne vous inquiétez pas, puisque cette réponse par sush peut être utilisé dans Tasker pour notre objectif. L'essentiel de cette réponse est : écouter une diffusion avec une action android.intent.action.NEW_OUTGOING_CALL
et recevoir la valeur d'une clé extra type particulière.
Tasker a soutien pour les intentions de réception. Avant de commencer avec le profil, écoutez-moi sur la façon dont j'ai extrait la valeur.
J'ai passé un appel à un numéro et j'ai immédiatement exécuté la commande suivante (qui requiert adb en PC) :
adb shell dumpsys activity
Dans la sortie, sous la section ACTIVITY MANAGER BROADCAST STATE (dumpsys activity broadcasts)
J'ai remarqué :
BroadcastRecord{32699300 u0 **android.intent.action.NEW\_OUTGOING\_CALL**}
act=android.intent.action.NEW\_OUTGOING\_CALL flg=0x10000030 (has extras)
extras: Bundle\[{**android.intent.extra.PHONE\_NUMBER**\=+919XXXXYYYZZ}\]
Ici, android.intent.extra.PHONE_NUMBER
est la clé du type supplémentaire.
Pour ce qui est de Tasker, configurez votre profil de la manière suivante :
-
Profil : Événement → Système → Intent reçu :
- Action :
android.intent.action.NEW_OUTGOING_CALL
- Priorité : la plus élevée
-
Tâche : (Actions) : le numéro peut être récupéré à partir de la variable
%android_intent_extra_phone_number
Comme d'habitude, stockez la valeur de cette variable dans une variable globale spécifique à l'utilisateur en utilisant Variable → Variable Set et utilisez cette dernière dans votre script quand vous le souhaitez.
Note :
- La solution est testée sur Android 4.2.1 et Android 5.0.2 (COS12).
- Par guide de l'utilisateur de Tasker, l'onglet Variables n'est pas affiché si Menu / Prefs / UI / Beginner Mode est activé.
- Le numéro de l'appelant pour les appels entrants peut aussi être récupéré en écoutant l'intention de diffusion avec l'action
android.intent.action.PHONE_STATE
et recevoir le numéro de %incoming_number
. Utilisez %state
dans une condition pour vérifier si sa valeur est RINGING ou IDLE. Si c'est le cas, récupérez la valeur dans %incoming_number
.