Bonjour à tous,
Depuis Android 14 l’utilisateur peut balayer (swip) une notification persistante. Dans les faits elle n’est plus persistante. Dans certains cas, il est souhaitable que la notification revienne sur le téléphone tant qu’une alarme est en cours et qu’elle n’est pas acquitté.
Cela peut être utilisé pour guider l’utilisateur sur des actions physique à faire (traitement eau piscine dans mon cas). Tant qu’il ne confirme pas que c’est effectué, la notification reviens.
Cet automate permet d’intercepter le balayage d’une notification persistante. Il faut obligatoirement qu’elle est un TAG.
Recommandations
Pour permettre à l’utilisateur d’acquitter une alarme ou bien de la reporter, je vous invite à ajouter des boutons d’actions qui permettrons d’annuler ces notifications. Autrement elles reviendrons sans fin.
Prévoyez également un effacement automatique quand l’alarme n’est plus d’actualité.
Vous devez savoir utiliser les usr_id, c’est utilisé pour cibler le bon utilisateur. Si vous ne savez pas les gérer le script Notification multi-utilisateur avec présence permet de les prendre automatiquement en compte sans devoir se documenter sur ce sujet.
Code
Pour la mise en production, pensez à modifier le TAG qui sera intercepté. Vous pouvez vous aider du script Notification multi-utilisateur avec présence qui permet de les générer graphiquement sans devoir se documenter sur les notifications avancées.
Code de l'automate "Renvoie des notifications persistante"
alias: Renvoie des notifications persistante
description: >-
Nécessaire depuis Android 14, les versions ultérieure ne sont pas concernées
Renvoie une notification persistante ayant le tag "qualite-eau" venant d'être
balayée
Les actions de notification sont ajoutées par le script appelé dans l'automate
trigger:
- alias: Balayage notification TAG demo-persistant
platform: event
event_type: mobile_app_notification_cleared
event_data:
tag: demo-persistant
persistent: "true"
context: {}
condition: []
action:
- alias: Renvoi la notification vers le USR_ID
service: script.notification_avec_presence
metadata: {}
data:
personnes:
entity_id: "{{ trigger.event.context[\"user_id\"] }}"
titre: "{{ trigger.event.data.title }}"
message: "{{ trigger.event.data.message }}"
resume: "{{ trigger.event.data.subject }}"
tag: "{{ trigger.event.data.tag }}"
icone: "{{ trigger.event.data.notification_icon }}"
couleur: "{{ trigger.event.data.color }}"
illustration: "{{ trigger.event.data.icon_url }}"
collant: "{{ trigger.event.data.sticky }}"
persistant: "{{ trigger.event.data.persistent }}"
click: "{{ trigger.event.data.clickAction }}"
actions:
- action: "{{ trigger.event.data.action_1_key }}"
title: "{{ trigger.event.data.action_1_title }}"
uri: "{{ trigger.event.data.action_1_uri }}"
- action: "{{ trigger.event.data.action_2_key }}"
title: "{{ trigger.event.data.action_2_title }}"
uri: "{{ trigger.event.data.action_2_uri }}"
- action: "{{ trigger.event.data.action_3_key }}"
title: "{{ trigger.event.data.action_3_title }}"
uri: "{{ trigger.event.data.action_3_uri }}"
mode: single
Très rapidement je rajouterai des exemples permettant d’effacer ces notifications persistantes. Cela évitera qu’elle reviennent en boucle et que les utilisateurs grognent