Un profil assez proche est décrit à Profil de Tasker (variante anglaise de Google-Translate aquí ). Je vais essayer d'en donner un résumé ici :
Données de base On/Off
Tâches
Vous aurez besoin de deux tâches pour cela :
-
activer les données mobiles :
- Net -> Auto Sync (réglé sur ON)
- Net -> Données mobiles (activé)
-
désactiver les données mobiles :
- Net -> Auto Sync (réglé sur ON)
- Net -> Données mobiles (activé)
Vous pouvez probablement sauter la partie "Auto Sync" (surtout si le Wifi entre en jeu), je l'ai mentionné juste pour être complet. De même, le Tasker -> PSAFE peut être utilisée pour vérifier si l'appareil est en mode sécurité ( ~ 1 ) ou non ( !~ 1 ).
Conditions
C'est la partie la plus difficile. Quant à l'activation et la désactivation de l'écran, c'est facile : Événement -> Affichage -> Affichage déverrouillé pour l'affichage actif, Événement -> Affichage -> Arrêt de l'affichage pour l'arrêt de l'affichage. La partie la plus difficile est de vérifier si les transferts sont toujours en cours -- je ne sais pas comment le faire. explicitement mais c'est probablement possible implicitement via le site susmentionné %PSAFE Variable Tasker : Avec un transfert en cours, l'appareil est moins susceptible d'être en mode sécurité. Vous devez probablement expérimenter avec cela. Reliez ces conditions aux tâches appropriées pour créer des profils.
Contrôles périodiques
Pour cela, vous devez ajouter une variable aux tâches ci-dessus : %LCD ce qui nous donne l'état de l'affichage. Ainsi, dans Variable -> Jeu de variables Name=%LCD -- en 1. réglé sur 1 (allumé), en 2. sur 0 (éteint). Créez maintenant un profil supplémentaire :
- Heure : Répéter 15min
- État -> Valeur de la variable %LCD ~ 0
- État -> Valeur de la variable %PSAFE ~ 1
Il fonctionne donc pendant 15 minutes, mais seulement lorsque l'écran est éteint et que la sécurité est active. Nous avons également besoin d'une tâche supplémentaire :
- Net -> Données mobiles : ON
- Net -> Auto Sync : ON
- Tasker -> Attendre : 1min
- Net -> Auto Sync : OFF
- Net -> Données mobiles : OFF
Adaptez-vous à vos besoins.
Vérification d'éventuels transferts en cours
Encore une fois, je ne sais pas comment vérifier s'il y a un transfert en cours. Une solution possible peut être trouvée dans Groupes Google mais je n'ai pas pu le vérifier. Cependant, comme vous pourriez vouloir l'essayer, voici l'extrait de base :
C'est un profil que j'ai créé sur mon Droid pour expérimenter le concept de surveillance des niveaux de trafic 3G.
Profile: Net Traf 3G (62)
Priority: 2 CoolDown: 0
Time: Every 10m
State: Mobile Network [ 2G:On 3G:On 3G - HSPA:On 4G:On ]
Enter: Read3gTraf (63)
A1: Test [Type:File Name Data:/sys/class/net/ppp0 Store Result In:%tg_exists Continue Task After Error:On]
A2: Read Line [File:/sys/class/net/ppp0/statistics/rx_bytes Line:1 To Var:%TG_RX] Read Line [ %tg_exists Is Set ]
A3: Variable Set [Name:%TG_RX_CHG To:%TG_RX-%TG_RX_OLD Do Maths:On Append:Off]
A4: Variable Set [Name:%TG_RX_OLD To:%TG_RX Do Maths:Off Append:Off]
A5: Stop [With Error:Off] Stop [ %SCREEN ~ off ]
A6: Variable Set [Name:%TG_RX_RATE To:ceil(%TG_RX_CHG/1024) Do Maths:On Append:Off]
A7: Notify [Title:3g traffic active Text:%TG_RX_RATE kb since last check Icon:<icon> Number:0 Permanent:Off]
%TG_RX_RATE contient les kb reçus au cours des 10 dernières minutes et peut être utilisé dans une condition de contexte.
Si mon téléphone est simplement posé, le trafic réseau en arrière-plan est inférieur à 20 kb par minute. En surfant sur le web, c'est 100 kb ou beaucoup plus par minute. Votre kilométrage peut varier.
Comme /sys est en réalité un dossier virtuel, le dossier /sys/class/net/ppp0 n'existe que lorsque l'interface 3G est activée. Lorsque j'active le wifi, le répertoire /sys/class/net/tiwlan0 est créé à la place.
(Ainsi, en changeant le chemin d'accès, je peux aussi surveiller le trafic wifi).