Vous êtes sur la page 1sur 52

1 / 52

Tasker Android
2 / 52
Table of contents
Introduzione ................................................................................................................................... 3
Editing ......................................................................................................................................... 10
Linguaggio .................................................................................................................................. 14
Subroutine (Perform task) .................................................................................................... 14
Priorit .............................................................................................................................. 15
Localizzazione ....................................................................................................................... 15
Flussi ...................................................................................................................................... 20
Telefonia ................................................................................................................................ 20
Connessioni .......................................................................................................................... 20
Bluetooth ........................................................................................................................... 20
Internet ............................................................................................................................... 20
Accesso e richieste Web ........................................................................................... 21
Email ............................................................................................................................ 22
Multimedia ............................................................................................................................. 22
Volumi ............................................................................................................................... 22
Variabili .................................................................................................................................. 22
Scripting ................................................................................................................................. 23
Menu ....................................................................................................................................... 23
Input - tastiera ........................................................................................................................ 23
Files ........................................................................................................................................ 24
Tempo / time ......................................................................................................................... 24
Estensioni .............................................................................................................................. 24
Plugin ................................................................................................................................ 24
Tips & tricks ................................................................................................................................ 26
Consigli di programmazione ............................................................................................... 34
Debug .................................................................................................................................... 34
Cose utili ................................................................................................................................ 35
Problemi ..................................................................................................................................... 37
MIE CREAZIONI ......................................................................................................................... 39
Contexts ................................................................................................................................. 39
Tasks ...................................................................................................................................... 39
IDEE FUTURE ........................................................................................................................... 45
Miei utilizzi possibili .............................................................................................................. 48
Esempi d'uso ............................................................................................................................. 51
Schemi di esempio .............................................................................................................. 51
3 / 52
Introduzione
(appunti personali in libert su Tasker per Android, non sempre aggiornati
nelle varie sezioni, probabilmente anche con errori...)
Tasker un programma che permette di automatizzare le attivit in Android: indubbiamente un
programma complesso e come tale un po' difficile da imparare, ma d'altra parte offre maggiori possibilit
rispetto ad altri programmi (quale Locale, i cui plugin sono comunque compatibili con Tasker).
Le possibilit poi sono ancora maggiori nei telefonini in cui sono stati sbloccati i permessi di root
(comunque non necessario per la gran parte delle attivit).
Il cuore di Tasker sono un insieme di azioni che formano un'unica entit chiamata Task.
I task possono essere avviati:
Manualmente
o creando un widget sulla home del cellulare procedendo in questo modo:

In schermata home premere a lungo su un posto vuoto e scegliere di aggiungere un


widget tasker (scegliendo quello senza timer).

Per completare la definizione, necessario specificare l'icona associata (clickando sul


pulsante con l'icona a forma di tavolozza colorata)

Infine si preme il pulsante Make widget per creare il widget (se clickando non succede
nulla, verificare che nella schermata di Tasker sia attivo il pulsante in basso a destra
con la scritta On e barretta verde (per attivarlo basta clickare sul suo "omologo"
pulsante Off))
Automaticamente, definendo degli eventi/contesti in cui deve partire il task
o Eventi: sono condizioni puntuali, che avvengono in un dato istante, senza una durata temporale
apprezzabile (e.g. arrivo di un SMS: arriva ad una specifica ora, ma non si pu dire che duri per
tot minuti); si ragiona in termini di "Nell'istante in cui avvenuto xxx,...."
o Contesti: hanno sia un'ora di inizio, ma anche una certa durata: possibile quindi ragionare in
termini di "Finch in corso xxx,..." (e.g. l'alimentazione del cellulare con il trasformatore
oppure il periodo in cui pianificata un'attivit sul calendario)
L'insieme di contesti/eventi + task associati sono contenuti in un profilo.
I profili a loro volta possono essere raggruppati in gruppi che appaiono in tab diversi sulla schermata
principale di Tasker (visibili nella seconda figura a destra sottostante, indicati dalle frecce gialle.
Se non sono visibili, occorre premere sulla freccia verso il basso MOLTO sfumata presente sul margine
superiore della finestra principale (indicata con " A " nella immagine sottostante).
Clickando sopra l'intestazione di un tab possibile crearne di nuovi, spostarli...)
Schermata di editing
Ecco una schermata di tasker 1.2 con programmi gi impostati.
4 / 52

In alto vediamo una toolbar che permette di accedere ai tab dei diversi elementi: i profili, i task, le scene
(che sono intefacce grafiche) e le variabili.
In mezzo, in questo caso aperto il tab dei profili, vediamo l'elenco dei profili (per editarne uno basta
clickarci sopra) e sulla estrema destra l'indicatore se sia attivo o meno (toggle modificabile premendoci
sopra).
In basso nella toolbar, da sinistra a destra, vi sono i pulsanti per:
Chiudere tasker salvando tutte le modifiche effettuate
Chiudere tasker senza salvare le modifiche
Aggiungere un elemento (in questo caso, essendo il tab dei profili, aggiungere un profilo nuovo)
5 / 52
Abilitare/disabilitare Tasker: SE NON C'E' L'INDICATORE VERDE, NON FUNZIONERA'
NESSUN PROFILO (NE' IN AUTOMATICO, NE' IN MANUALE), NE' WIDGET
Clickando su un profilo (o creandone uno nuovo, assegnandoli un nome) avremo di fronte una schermata che
presenta grosso modo 2 colonne verticali:
Quella sinistra contiene i contesti cio le condizioni che fanno scattare l'esecuzione di (task) specific
(In questo caso l'evento/contesto rappresentato dalla esecuzione di alcuni progammi [GMaps, My
Tracks e Places] da parte dall'utente)
Quella destra indica i task specifici da eseguire all'inizio (freccia verde ) ed al termine (freccia
rossa ) dell'esecuzione.
Nello specifico, per tutti e 3 viene fatta la stessa cosa, cio attivare il GPS all'inizio (con il task GPS Auto-
Launch) e disattivarlo alla fine (task GPS Off)
Nota che nell'immagine sottostante manca un pezzo della definizione del terzo contesto perch la
schermata troppo piccola; inoltre la toolbar in basso diversa in quanto l'immagine ricavata da una
precedente versione di Tasker
6 / 52
Esempio:
Dalla schermata di cui sopra premiamo il tasto che ci permetter di scegliere l'evento/condizione
(context) che far scattare il nostro task; a questo punto ci verr chiesto il tipo di condizione che ci
interessa considerare:
7 / 52

cio, se vogliamo far scattare il tutto:
alla partenza di un programma (Application); possibile scegliere uno specifico programma, sceglierli
tutti magari specificando eccezioni (parmetro opzionale not)
ad una certa ora o giorno (Time, Day)
luogo (Location) identificato per mezzo del GPS/Wifi/cella telefonica
condizioni durature (State) per cui possibile specificare cosa fare all'inizio ed anche al termine della
condizione; e.g. attivazione del blutetooth, inserimento dell'auricolare,...
eventi istantanei di breve durata (Event), cos brevi che non esiste una gestione di inizio e fine attivit,
ma solo un'azione da applicare in corrispondenza dell'evento
Possibilit di:
creazione profili
notifiche in tray
widget clickabili (potendo scegliere l'icona tra le 200 x 22 set di icone disponibili)
compiti timer dipendenti
clickabel shortcuts: sono pi limitati di un widget, ma possono essere usati in altri contesti (e.g. nei
folder)
RICAPITOLANDO
I "progammi" di Tasker sono definiti da:
Contesti (anche multiplicontemporaneamente) che rappresentano gli eventi/condizioni che attivano un
determinato task; i contesti sono definiti da:
o Stati: Airplane Mode, Bluetooth Connected, Calendar Entry, Docked (Any/Desk/Car),
Headset Plugged (Any/Mic/No Mic), Incoming Call, Keyboard Out, Light Level, Media
Button, Missed Call, Mobile Network (Any/2G/3G), Orientation (Face Up etc), Power Any/
AC/USB, Proximity Sensor, Signal Strength, Unread Text, Variable Value, Wifi Network,
8 / 52
Wifi Near
o Eventi: sono una 50ina, suddivisi in categorie; alcuni dispongono di parametri aggiuntivi (e.g.
numerici o se devono poi trasmettere il segnale ad altri programmi)

Date/Time: Alarm Clock, Alarm Done, Date Set, Time/Date Set, Timezone Set

Display: Off/On/Unlocked

File: File Closed/Deleted/Modified/Moved/Opened/Attributes Changed

Hardware: Camera Button, Search Button Long-Press, Card Mounted/Removed/


Unmounted

Misc: Gesture: possono essere registrate, non serve un pulsante di inizio per la
attivazione delle gesture, basta il contesto

Phone: Missed Call, Phone Idle/Offhook/Ringing, Received Text, SMS Send Success/
Failure

Power: Battery Changed/Full/Low/Overheating

System: Device Boot, Device Shutdown, Device Storage Low, Locale Changed, New/
Removed/Updated Package, Wallpaper Changed

UI: Button Gadget Clicked, New Window, Notification, Notification Clicked, Zoom
Click

Variables: Variable Cleared/Set

3rd Party: Email Received (K9), Gentle Alarm, Kaloer Clock, OpenWatch, Reddit
Notify, Screebl, Widget Locker (Locked,Unlocked,Hidden)
Task : sono insiemi di azioni (in realt comprendono actions [icona fulmine] e settings [icona ruota
dentata]) che possono essere da eseguire in successione oppure scegliendone una un menu da cui
scegliere una singola attivit. Se si intende ripetere le stesse azioni in condizioni diverse (ad esempio
attivare il GPS & alzare luminosit display quando parte GMaps oppure la macchina fotografica per il
tagging) conviene attribuire un nome al task (che comprende le azioni che ci interessano) ed usarlo poi
quante volte vogliamo nei diversi contesti (per definire task con nome, basta premere il pulsante new)
Le azioni disponibili sono 190 divise in 14 categorie;
o ogni azione dispone di un campo if per parametri condizionali necessari per eseguire l'azione
o in alcune (e.g. Applicazioni) esiste un parametro not che permette di specificare condizioni
negative/eccezioni
NOTA IMPORTANTE: le azioni che rientrano nei cosiddetti settings (l'icona una ruota dentata), se
vengono modificate nell'esecuzione di un profilo, al termine di esso vengono rimesse come erano prima
(esempio: screen brightness ) in automatico da Tasker
Task disponibili:
Alert: Flash, Notify LED/Sound/Vibrate, Cancel Notification, Popup Timed/WithTaskIcons/
WithTaskNames, Torch, Vibrate, Vibrate Pattern
App: Calendar Insert, Go Home, Kill App, Load App, Open Map (/StreetView/Navigate)
Audio: Alarm/Call/DTMF/Media/Notification/Ringer/System Volume, Haptic Feedback Toggle,
Microphone Mute, Notification Pulse, Notification/Ringer Vibrate, Silent Mode, Speakerphone, Sound
Effects toggle
Dialog: 28 System Settings dialogs
Display: Auto-Brightness, Close System Dialogs, Keyguard, Keyguard Pattern, Display Brightness,
Display Off Timeout, Display Rotation, Set Wallpaper, Stay On, Status Bar (expand/collapse)
Encrypt (not in market version): File/Directory Encrypt/Decrypt,Enter/Clear Passphrase
File: Browse Files, Directory Create/Delete/Move, File Copy/Delete/Move/Open, Write To File, Read
Line, Read Paragraph, Zip/Unzip File
Input: Button, Dpad, Type (root only), Input Method Select, Soft Keyboard (show)
Media: Media Button Events (grab), Media Player Control, Music File/Dir, Play/Forward/Back/Stop,
Photo/Series/TimeSeries, Record Audio, Record Audio Stop, Ringtone, Scan Card
Misc: (Broadcast) Action Intent, Component Intent, Get Location, GPS Set (<2.3 or Cyanogen/
submod), Run (ASE) Script, Say, Say To File, Shut Up, Search For, Set Clipboard, Reboot (root
only), Set CPU (root only) Set Timezone
Network: Airplane Mode, Autosync, Bluetooth, Bluetooth ID, Compose Email, Browse URL, HTTP
9 / 52
GET, HTTP POST, Mobile Data (on/off), Mobile Data 2G/3G (Cyanogen only), USB Tether, WiFi
(set/toggle), Wifi Disconnect/Reassociate/Reconnect, Wifi Sleep, Wifi Tether, Wimax (set/toggle)
Phone: Call, Call Log, Call Block/Divert/Revert, Compose MMS/SMS (Templated), Contacts, End
Call, Radio, Send SMS, Send Data SMS, Silence Ringer, Take Call
Tasker: Change Icon Set, If, End If, Goto Action, Perform Task, Profile Toggle, Query Action, Set
Widget Icon, Set Widget Label, Stop, Wait, Wait Until
Variables: Set/Clear/Inc/Dec/Query/Randomize/Split/Join/List
Zoom: Element Position, Size, State, Visibility, Text Size, Text, Image, Text Colour, Image Alpha
3rd Party: Android Notifier, Astrid, BeyondPod, Due Today, JuiceDefender Data/Toggle, Gentle
Alarm, NewsRob, OfficeTalk, SleepBot, SMS Backup+, TeslaLED, WidgetLocker
Variabili built-in utilizzabili:
Le seguenti sono variabili predefinite utilizzabili nei nostri task:
Airplane Mode Status, Battery Level, Bluetooth Status, Brightness, Called Name,Number, CPU
Frequency/Governor, Duration,Time,Date (Out), Clipboard Contents, Date, Display Timeout, Day of Month/
Week, Free Memory, GPS Status, HTTP Response/Data, Keyguard Status, Email From/Cc/Subject/Date/
Time, Light Level, Location/Accuracy/Altitude/Provider/Speed/Fix Time, Music Track, Profiles Active,
Profiles Enabled, Screen State, Text Sender Address/Name/Body/Date/Subject/Time, Cell ID/Signal
Strength/ServiceState, Silent Mode, Task Time in Queue,Last Caller Name/Number/Date/Time (In), Last
Application, Last Photo, Muted, Notification Title, Phone Number, Roaming, Speakerphone, Tasks
Running, Telephone Network Operator, Time, Time Seconds, Uptime Seconds, Speech, Volume
Level Alarm/Call/DTMF/Media/Notification/Ringer/System, WiFi Status, Wimax Status, Window Label
Indirizzi utili:
Wiki con vari profili di esempio: http://tasker.wikidot.com/
Esempio in inglese di semplice applicazione passo-passo: http://lifehacker.com/5599116/how-to-turn-
your-android-phone-into-a-fully+automated-superphone
Thread lungo su forum: http://www.droidforums.net/forum/droid-applications/66195-what-have-you-done-
tasker.html
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
10 / 52
Editing
Il programma viene editato tramite un interfaccia visuale, non essendo disponibile alcun editor esterno (da
PC) nonostante sia possibile esportare i task in formato XML (peraltro piuttosto complicato da capire, con
un apparente caos nell'ordine delle singole istruzioni).
Innanzitutto dalle impostazioni (tasto hardware Menu -> preferences -> tab UI) possibile:
Selezionare una modalit di interfaccia semplificata (beginner mode) o completa; francamente consiglio
quest'ultima, tanto il programma rimane complesso da utilizzare e quindi tanto vale avere in vista tutte
le opzioni disponibili
Specificare che tipo di azione debba avvenire quando, in fase di editing, si clicka (brevemente o a lungo)
su un singolo comando di un task: possibile scegliere tra:
o niente
o cancellazione (delete) del comando
o editing dello stesso
o options (opzioni contestuali)
Da parte mia consiglio: click breve -> editing, click lungo -> options
Se impostato come sopra, clickando a lungo su un comando di un task apparir un menu contestuale
che permetter operazioni di cut/copy/paste del comando (per spostarlo/copiarlo) oppure Insert action
per aggiungere un nuovo comando al di sopra di quello clickato (altrimenti, clickando sul pulsante
il nuovocomando viene sempre inserito in fondo)
EDITARE UN TASK
L'accesso all'editing di un tasko lo si fa:
Clickando su un elemento della lista di task oppure sul pulsante per creare uno nuovo.
Per visualizzare l'elenco dei task occorre attivare il tab tasks premendo sulla scritta "Tasks" presente in
alto (alla destra di quella "Profiles")
[NOTA: nella figura sottostante viene indicato il pulsante da premere per attivare il tab task; quello
mostrato per l'elenco profili, non dei tasks]
Clickando sul task associato ad un profilo. Nell'elenco dei profili (mostrato premendo sulla scritta
"Profiles" in alto a sinistra) vi l'elenco dei profili definiti; clickando su uno di essi, sulla destra
11 / 52
appariranno i task ad esso associati ( premendo su uno di questi che si passa direttamente all'editing
di quel task)
Ecco una parte della schermata di editing:
Il pulsante serve ad aggiungere un nuovo comando in fondo al programma.
Il pulsante permette di specificare alcune propriet del task:
o come comportarsi nel caso un task venga eseguito mentre gi in esecuzione uno identico (si
pu scegliere di farli funzionare entrambi oppure di far sopravvivere quello gi in esecuzione
oppure la nuova istanza)
o se mantenere il programma attivo anche a schermo spento: utile per evitare che una lunga
elaborazione si interrompa a causa della modalit automatica a basso consumo di Android
(d'altra parte, espone a rischi di consumo di batteria elevato, ad esempio se il programma, per
un bug, continua a girare indefinitivamente)
il pulsante permette di scegliere un'icona da associare al task; tale icona appare nell'elenco dei
task ed obbligatoria se si vuole creare un widget dal task
A seconda di come avete specificato su preferenze (vedi sopra), clickando su un comando possibile
12 / 52
modificarne i parametri in una schermata simile a questa [ad esser precisi questa l'edit di un evento, ma
lo schema identico]:
Pulsanti presenti:
Accetta le modifiche al comando
Lascia perdere le modifiche al comando
Mostra un breve testo di aiuto sul comando (molto utile! La prima volta chiede se si vuole
scaricare una volta per tutte la guida di tutti i comandi sulla scheda SD...cosa che raccomando!)
Sempre da questa schermata, possibile sostituire un comando con un altro premendo sulla riga di
intestazione del comando (che nella figura ho indicato con una piccola freccia gialla).
Drag & drop sui comandi
Alcune operazioni di editing sono possibili clickando sulla estrema destra della linea di un comando
(dove in genere vi una piccola icona [vedi freccia gialla nella figura sottostante]).
A questo punto possibile trascinarlo :
su/gi per spostarlo in altri punti del programma
oppure, portandolo completamente in basso (dove nel frattempo apparsa l'icona di un cestino),
eliminarlo
13 / 52
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents
14 / 52
Linguaggio
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
Subroutine (Perform task)
Questo comando permette di richiamare un task dall'interno di un altro task: in pratica permette di chiamare
una subroutine.
Il problema principale nell'utilizzo la gestione del rapporto di esecuzione tra task "chiamante" ed il nuovo
task invocato, infatti si pu volere aspettare che il nuovo task abbia terminato la propria esecuzione oppure
eseguire i due task contemporaneamente (ad esempio se il nuovo task non crea nulla di necessario al task
chiamante).
Questi rapporti sono regolati dalla propriet Stop e dalla priorit (Priority).
Possibilit:
task chiamante ha priorit pi bassa --> sorta di richiamo subroutine
I nomi dei task iniziano con la lettera maiuscola: ricordatene se pensi di eseguirne uno
manualmente con il comando Esegui task
Quando si fa partire un task con il pulsante "Test" gli viene assegnata un'altissima priorit, per
cui rischia di incasinare i funzionamenti delle propriet in eventuali task secondari; al limite conviene far
partire il task che si vuole... http://groups.google.com/group/tasker/browse_thread/thread/
c69984d07da62852/f229345b40070597?lnk=gst&q=priority#f229345b40070597
Quando si lancia un task da un altro task (con l'azione Task launch), il parametro STOP indica se
occorra aspettare che il task richiamato debba finire prima di poter continuare; la cosa non da poco,
soprattutto se il resto dello script lavora sui dati creati dal task richiamato inizialmente! In realt contano
anche le priorit nel comportamento: vedi sezione apposta.
PROBLEMI
In realt ci sono problemi nella gestione attuale (per cui l'autore sta lavorando sulla prossima versione) per
cui al momento non riesco a fare in modo che sia atteso il termine del nuovo task prima di proseguire:
dandogli priorit pi alta non cambia nulla, mettendo la propriet Stop lo scripting si ferma l per sempre.
Al momento quindi nelle routine pi adoperate come subroutine come ultima istruzione setto una variabile
omonima alla routine+END (xxxEND)=on: per essere sicuri che la routine abbia finito, devo prima di
chiamare il task settare la variabile xxxEND ad un valore diverso da on, chiamare il task e nella istruzione
successiva mettere un While Until xxxEND=on....un po' sporco, ma...
Anche con tale variabile sentinella, ottengo che dica solo la vrase Save settings in esecuzione, ma non
arriva alla fine.
Temo sia un bug:
(Task A)
Perform Task B
Say "A ended"
(Task B)
Say "B started"
SET few variables
Say "B ended"
15 / 52
Stop Priority A Priority B Resulting say
No 5 0 A ended, B Started, B ended
No 5 5 A ended, B Started, B ended
No 5 6 A ended, B Started, B ended
No 5 10 B started, A ended, B ended
Yes 5 10 B started, B ended (no A ended: script stop [disappear "Kill App"]
Yes 5 5 B started, B ended (no A ended: script stop [disappear "Kill App"]
Yes 5 0 B started, B ended (no A ended: script stop [disappear "Kill App"]
Maggiori dettagli e consigli:
http://groups.google.com/group/tasker/browse_thread/thread/4bfc0c42513b899f/38e9d290cc696468?#
http://groups.google.com/group/tasker/browse_thread/thread/1d072ff37368d8aa/3eac641b90f07d03
Proposta per riuscire a fare in modo che un task aspetti il completamento dell'altro
I just used the tasks that you had typed, with only one change. When
you use the Perform Task in "Task 1", I had Stop OFF. Your tasks work
fine this way (unless you are trying to do other things you have not
mentioned). If this is the case, you should probably make the
Priority higher, say 10, then it will do everything in the second task
before continuing with the first task.
If you are still having a problem, you could use a variable to tell
"Task 1" when it should continue.
Task: T1
Varible Set %WAITING to 1
Popup, Title: T1, Text: Text 1
Perform Task, Name: T2, Stop: OFF
Wait Until %WAITING !Set
Popup, Title: T3, Text: Text 3
Task: T2
Popup, Title: T2, Text: Text 2
Varible Clear %WAITING
Created with the Personal Edition of HelpNDoc: Easy CHM and documentation editor
Priorit
La priorit di un task dipende da molti fattori:
Un task avviato con il pulsante Test dell'editor ha una super-priorit
I task shortcut/widget hanno la priorit impostata nel menu di Tasker Prefs / Action setting (global
setting)
Nel caso di Perform task dipende dalla propriet di questa action
Vi anche un qualcosa che riguarda i profili
Se devi mettere una priorit alta, al max adopera 9 ( e non 10: sembra fare casini)
In realt la cosa pi complicata vedi : http://groups.google.com/group/tasker/browse_thread/thread/
a7c32914ae697898/253da51e02b56ac3?lnk=gst&q=priority#253da51e02b56ac3
Created with the Personal Edition of HelpNDoc: Free help authoring environment
Localizzazione
E' un sistema un po' complesso da far funzionare correttamente.
Tasker in grado di sfruttare diversi sistemi di localizzazione geografica:
Celle telefoniche: molto impreciso (anche di km), "resiste" abbastanza anche al chiuso, non comporta
consumo in pi rispetto al normale utilizzo telefonico
16 / 52
Rete Internet [net]: forse sfrutta tipo una sorta di IP o simili ?
Rete WiFi (& Internet): si basa su mappe di distribuzione dei punti di accesso WiFi (mappe
consultabile tramite Google): sapendo che una data rete WiFi si trova in un specifico contesto
geografico, risale alla localizzazione attuale. Poich le mappe sono online, necessario l'accesso ad
Internet (motivo per cui la localizzazione WiFi richiede anche l'accesso alla rete Internet [anche se
chiaramente il WiFI in s ne indipendente come rete]).
GPS: molto preciso (anche nell'ordine delle decine di metri), difficilmente funziona al chiuso, consuma
parecchia batteria
Il permesso di adoperare la localizzazione legata alle reti (telefoniche o WiFi) oppure al GPS
controllata da specifiche impostazioni in Android; da notare che sono una cosa diversa dalla semplice
attivazione della rete WiFi, scambio dati,... (ad esempio, per la localizzazione con WiFi occorre che sia
attivo il modulo WiFi del cellulare, ma ANCHE abilitata/permessa la localizzazione tramite reti).
Al momento non credo sia possibile cambiare il permesso di localizzazione tramite Tasker: suppongo sia
un fatto di sicurezza/privacy (per evitare che un programma ci possa tracciare di nascosto); d'altra parte
tenerlo sempre acceso non credo comporti nessun consumo in pi in quanto costituisce una semplice
autorizzazione all'utilizzo dei dati per la localizzazione, ma in s non attiva nessuna rete o dispositivo (cosa
che eventualmente dovr essere fatta a parte).
Chiaramente importante la frequenza con cui vengono controllate le fonti della attuale localizzazione.
In genere esistono:
una frequenza di controllo con dispositivo acceso (display on) specifica per ogni modalit di
localizzazione
una frequenza di controllo a dispositivo spento (display off) comune a tutte le fonti per minimizzare il
tempo di attivazione del dispositivo per effetuare i controlli (nel menu Display Off Settings possibile
impostare sia la frequenza che la massima durata dei controlli).
Il servizio di localizzazione presuppone di trovarsi sempre nel punto ricavato dall'ultima localizzazione.
Questi sistemi vengono sfruttati per 2 scopi:
Conoscere esattamente il punto dove ci si trova (possibilmente al metro!), ad esempio per dire dove ci
troviamo per farci raggiungere (position/location).
Per questo scopo si possono adoperare:
o Rete internet [net]: consuma poco (poco in pi rispetto al normale uso telefonico, purch sia
disponibile un network), ma la precisione varia enormemente e richiede sia il collegamento alla
rete (network: internet suppongo) che quello telefonico (phone service).
Per impostarla occorre creare un location context e disattivare il GPS; importante impostare
un raggio ampio intorno alla posizione di interesse (la frequenza di controllo regolabile, sia a
display spento che acceso).
o Rete WiFi E Internet [net] : maggiore consumo, precisione molto variabile (buona in aree
popolose), necessita sia di rete Internet (net) che WIFi.
Per impostarlo occorre creare un location context, disattivare il GPS ed attivare il WiFi per
ottenere una maggiore precisione.
Per registrarlo occorre recarsi sul posto almeno 1 volta.
o GPS: alto consumo, alta precisione all'aperto, molti problemi al chiuso.
Per impostarlo occorre creare un location context e deselezionare Net.
La frequenza di controllo a dispositivo acceso impostabile, come pure quella del dispositivo
spento (in comune con altre fonti di localizzazione).
Si pu impostare anche il GPS Timeout che specifica quanto tempo debba continuare il
tentativo di ottenere una localizzazione GPS (chiaramente questo influenza sia la capacit di
stabilire una localizzazione, ma anche il consumo della batteria).
Poich il controllo della posizione GPS non continuo (ma ad intervalli) e dato che al chiuso
non riesce a stabilire la posizione, se dalla posizione A (localizzata) si passa nella posizione B
17 / 52
al chiuso (no segnale, no localizzazione), il dispositivo far riferimento all'ultima posizione
stabilita (fix) per cui creder di essere ancora in A (cambier idea quando uscir all'aperto ed
avverr un fix).
NOTA: sono 2 cose distinte:

la predisposizione dell'hardware (GPS on con Tasker oppure premere il pulsante


nella tray)

e l'utilizzo effettivo per localizzazione (che avviene con GetLocation in Tasker


oppure facendo partire un programma che usa il GPS): solo in questo secondo
passaggio apparir l'icona lampeggiante (e poi stabile) nella tray; chiaramente per non
potr apparire mai se l'hardware scollegato
Sapere in quale AREA (pi vasta) ci si trova, e.g. per fare qualcosa se ci troviamo in ambito casalingo
(status).
Per questo si possono adoperare:
o Stato di vicinanza a celle telefoniche: consuma pochissimo (pari al normale funzionamento
telefonico), molto impreciso (ma resiste abbastanza bene al chiuso).
L'aggiornamento avviene secondo un frequenza regolabile quando il display spento, mentre a
display acceso l'aggiornamento avviene appena la cella visibile (as soon as the tower is
visible)
Per adoperarlo, occorre impostare uno state context con Cell near -> Update mentre ci si
muove nell'area di interesse (dunque necessario recarcisivi almeno una volta)
o Stato di vicinanza a reti wifi: consuma abbastanza (ma meno del GPS), buona la precisione,
necessita di un accesso WIFi nei paraggi, funziona anche al chiuso
Per adoperarlo, occorre impostare uno state context con WiFi near ed imposta il SSID
(identificatore di rete) del miglior segnale WiFi che vuoi utilizzare/identificare.
Questa funzione fa regolari controlli delle reti WiFi e scatta l'attivazione se riconosce un punto
di accesso tra quelli impostati; da notare che non serve collegarsi alla rete WiFi, basta che sia
ricevibile (motivo per cui si pu anche sfruttare la rete magari pi forte del vicino).
Se si vuol evitare di mantenere acceso il WiFi in continuazione, basta attivare la casella di
controllo WiFi Toggle: in questo modo verr attivato da Tasker solo quando necessiter di
effettuare i controlli delle reti presenti.
Rapporto tra consumo e precisione
Metodo
Consumo
energetico
Precisione
Necessita di
internet [net]
Necessita del
WiFi
Stato: vicinanza a celle
telefoniche [State]
* *
Posizione: rete internet
[Location][Net]
** ** S
Posizione: rete internet & Wifi *** */***** S S
Stato: vicinanza a WiFi **** ***** S
Posizione: GPS ***** ***** S
Ad un numero maggiore di stelle corrisponde maggior consumo o precisione (a seconda della colonna)
Tasker adotta delle strategie per limitare il consumo energetico: ad esempio, in caso di pi contesti nel
medesimo profilo dapprima aspetter che si attivino quelli a minor dispendio energetico e solo in
seguito controller gli altri.
18 / 52
Ad esempio, per capire se si a casa, si pu creare un profilo con doppio contesto che adopera sia una
posizione Internet [Location Net] che uno stato WiFi near: Tasker effettuer i controlli WIFi solo
quando ci si trover nel quartiere.
Variabili predefinite
Sono disponibili alcune variabili predefinite per controllare la localizzazione.
Variabili utili per le celle telefoniche
%CELLID (dinamica, monitorata): riporta l'attuale cella telefonica, se nota.
Da notare che il Cell near state (cio lo stato legato alla vicinanza ad una specifica cella) pu
rimanere attivo (cio indicare che si in un dato contesto di celle) anche se in realt la variabile %
CELLID riporta che effettuvamente la cella attuale sconosciuta/non valida. Questo per evitare che
il contesto di stato Cell near state possa cambiare semplicemente perch si interrotto il servizio
telefonico.
In altre parole:
o %CELLID riporta sempre la situazione in tempo reale (nota che la stringa riportata inizia
con "GSM:" (e.g. GSM:20026.51372); se non c' collegamento telefonico, riporta come
se la variabile non esistesse (cio il nome stesso %CELLID). NOTA:
o lo stato Cell near state varia solo in risposta a ID di cella validi (non cambia se la cella
attuale diviene non valida [non raggiungibilit telefonica])
Variabili utili per la localizzazione net (Internet)
%LOCN (dinamica) : latitudine e longitudine dell'ultimo network location fix (localizzazione)
%LOCNACC (dinamica): accuratezza in metri dell'ultimo network location fix
%LOCNACC (dinamica): accuratezza in metri dell'ultimo network location fix
%LOCNTMS (dinamica): orario (espresso in secondi) in cui avvenuto l'ultimo network location
fix.
Per ottenere quanto tempo trascorso dall'ultimo fix (cio un'indicazione relativa), basta sottrarlo
all'orario attuale che contenuto nella variabile %TIMES (ora attuale espressa in secondi trascorsi
dal Gennaio 1970; notare la "S" finale: %TIME e %TIMES sono due cose diverse!).
e.g. %TIMES-%LOCNTMS --> n. di secondi trascorsi dall'ultimo fix
Per controllare il successo di un fix, vedi pi sotto (in pratica salva l'orario attuale, tenta il fix e
confronta l'orario salvato con quello dell'ultimo fix riuscito)
Variabili utili per il GPS
%LOC (dinamica) : latitudine e longitudine dell'ultimo GPS fix (localizzazione)
%LOCACC (dinamica): accuratezza in metri dell'ultimo GPS fix
%LOCALT (dinamica): altezza in metri dell'ultimo GPS fix; riporta 0 se non disponibile
%LOCSPD (dinamica): velocit (metri al secondo) dell'ultimo GPS fix; riporta 0 se non
disponibile
%LOCTMS (dinamica): orario (espresso in secondi) dell'ultimo GPS fix.
Per calcolare quanti secondi sono passati dall'ultimo fix, vedi la spiegazione gi fatta per la variabile
19 / 52
"sorella" %LOCNTMS
Variabili utili per il WiFi
%WIFII : informazioni WiFi
o se connesso ad un punto di accesso WiFi, ne riporta i dati in formato leggibile (contenendo
tra l'altro la parola CONNECTION, motivo per cui per verificare se vi una connessione
WiFi in corso basta IF %WIFII matches *CONNECTION* )
o se non connesso, mostra i risultati della ricerca WiFi effettuata pi recentemente
%WIFI (dinamica): riporta se il WiFi sia attivo (on) o no (off).
Da notare che viene considerato/riportato off anche nel caso sia in corso l'attivazione o sia proprio
disabilitato (in altre parole, risulta on solo se gi pienamente attivo)
Stabilire se un tentativo di fix ha avuto successo, possibile:
1) salvare l'orario attuale,
2) tentare un fix,
3) controllare se l'orario salvato pi vecchio dell'orario dell'ultimo fix.
Ad esempio, nel caso del GPS:
Variable Set, %STARTMS, %TIMES
Get Location
RiuscitoFix, If %LOCTMS > %STARTMS
NOTA PER LOCALIZZAZIONE
GPS on/off: attiva l'hardware GPS (ma non tenta di per s il fix)
GetLocation: fa un tentativo di stabilire la posizione attuale (fix) sfruttando o il GPS, o la rete (Net)
o entrambi (Any). Si pu specificare un tempo massimo per il tentativo (timeout).
Per capire se il tentativo riuscito e con quale sistema (nel caso si sia impostato Any), occorre
controllare i valori di orario dell'ultimo fix per i due diversi sistemi, contenuti nelle variabili %
LOCTMS (per il GPS) e %LOCNTMS (per la rete/network), secondo quanto riportato pi sopra
nel paragrafo "Stabilire se un tentativo di fix ha avuto successo..."
Da notare che una cosa l'attivazione dell'hardware , un'altra la richiesta della posizione (e
quindi il suo utilizzo): solo quest'ultima fa apparire l'icona di ricerca posizione GPS nella tray
Esempio di reverse geocoding con Google maps:
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true
Elenco dei parametri di mappa su URL di GMaps: http://mapki.com/wiki/Google_Map_Parameters
(permettono di caricare una tipologia di mappa, traffico,...)
I parametri vanno introdotti con ? e divisi (se sono pi di uno) con & (ad esempio, t=m fa vedere
la mappa, non il satellite
Per migliorare la precisione del GPS, esiste il programma GPS Helper che fa un buon lavoro; per evitare
che la sua schermata rimanga in primo piano, basta subito dopo chiamare la funzione Go Home (in App)
20 / 52
Created with the Personal Edition of HelpNDoc: Full featured multi-format Help generator
Flussi
Wait until : attenzione che il tempo da specificare indica ogni quanto controllare la condizione (non il
timeout dopo il quale continuare...)
Nelle condizioni di If possibile anche adoperare set e not set per basarsi sull'esistenza o meno di
una variabile;
NOTA: poich Tasker accumula per sempre le variabili adoperate, conviene cancellare le
variabili (con clear) quando non sono pi usate (ed anzi, quando usate come variabili
booleane, basarsi sull'esistenza o meno della variabile stessa in modo che risulti comodo
cancellarle alla fine [adoperando come condizione di uscita da loop boleani proprio la non-esistenza
della variabile).
Esiste If-ElseIf-Else (ElseIf si fa sfruttando l'opzione If del comando Else)
FOR permette di scorrere elenchi
GOTO permette di saltare alla istruzione n. X oppure (meglio) al comando con una label specifica
Created with the Personal Edition of HelpNDoc: Free help authoring environment
Telefonia
SMS:
o SMS Compose usa il programma di Android per preparare un SMS (e se ce n' pi di uno
chiede quale scegliere in runtime...)
o SMS Send invece lo spedisce direttamente, senta interagire con l'utente
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single
source
Connessioni
In teoria Android (e non Tasker di per s) disattiva lo scambio dati Internet 2G/3G quando si attiva il
WiFi
Tasker, even with no profiles active, still does WiFi Scan & BT scans and will shut both off if
nothing is found within the specified limit.
Per sapere se si connessi in WiFi, basta fare: IF %WIFII matches *CONNECTION*
Se invece basta sapere quali reti ci sono (anche se non si collegati) in %WIFII ci sar l'elenco
preceduto dalla parola SCAN (e questo permette di distinguere se si collegati o meno ad una rete
WiFI)
Created with the Personal Edition of HelpNDoc: Create iPhone web-based documentation
Bluetooth
Esiste uno status BT Connected
Inoltre, quando il bluetooth connesso: %BLUE matches on
Al momento (vers. 1.2) non esiste una funzione Bluetooth near, cio che che controlla e si attiva se
nelle vicinanze vi una trasmissione BT
Created with the Personal Edition of HelpNDoc: Full featured multi-format Help generator
Internet
21 / 52
Created with the Personal Edition of HelpNDoc: Free Web Help generator
Accesso e richieste Web
La funzione Data mobile attiva il trasferimento dati, ma ha diverse limitazioni:
Richiede che nelle impostazioni di Android sia attivata la trasmissione dati (che funge forse da
permesso per poter attivare lo scambio dati), altrimenti non funziona
Applicazioni Google e lo stesso Android possono modificare questa impostazione (e.g. quando viene
disattivato il wifi)
(forse valgono le stesse limitazioni riportate da un widget per la gestione dei dati: Toggle data open mobile
network settings. Why ?
Disable data directly is not allowed by Android, you have to enable data first on this settings and after
toggle data work correctly.)
E' possibile adoperare:
HTTP Get: action che permette di effettuare una richiesta ad un sito ed otterne dei dati come risposta
o Parametri di partenza:

Serfer:Port : va messo il link al sito da contattare (senza precederlo con http:\)

Mime Type : va specificato la tipologia dei dati ottenuti come risposta


o Risultato: sar possibile accederci tramite le seguenti variabili

%HTTPR : conterr il codice standardizzato di risposta che indica come andata


l'operazione (vedi http://256.com/gray/docs/http_codes.html ), tra 200-206 indicano che
andata bene

%HTTPD : conterr il testo della risposta


ATTENZIONE: Questa funzione ha un'enorme limitazione: se la rete non accessibile, dar
un errore che interromper immediatamente il task in corso (non eseguendo tutto il resto).
Per questo:

Va eseguita sempre come Task separato e con priorit altissima (senn come
subroutine a bassa priorit non verrebbe eseguita prima del resto del codice)

Non possibile implementare controlli di fine esecuzione (con variabile impostate al


termine della routine) perch in caso di errore non vi arriverebbe mai il codice
o Per accorciare un link si pu usare il servizio del sito is.gd tramite il comando GET HTTP:
Net --> HTTP Get con parametri: server: is.gd path: api.php attributes:
longurl=linkLungoDelSito timeout:quelloCheVuoi MimeType: text/plain
Il link breve sar in %HTTPD se tutto andato bene (e lo se %HTTPR diverso da -1)
In alcuni siti fanno mettere tutto un link unico sotto server e.g. www.gmaps.com/maps?
q...ma a volte sono casini, ad esempio se ci sono pi parametri nell'URL lungo divisi da &, in
corrispondenza dei quali il GET spezza la stringa; in pratica viene pi ordinato e sicuro mettere
sotto server solo il dominio, in path il percorso dopo il dominio ed in attributes i parametri che
seguono il punto di domanda ? mettendo in ogni riga i singoli parametri seguiti da un uguale =
(in questo esempio solo longurl)
Created with the Personal Edition of HelpNDoc: Free HTML Help documentation generator
22 / 52
Email
E' possibile predisporre l'invio di una email in modo che tasker apra e compili per noi la email, per occorre
che sia l'utente a premere Invia.
Per superare quest'ultimo limite, occorre complicare un po' le cose adoperando il sistema di scripting di
Android (e credo occorra un cellulare rooted) SL4A ad esempio con lo script Python SendEmail.py che si
trova in rete
Created with the Personal Edition of HelpNDoc: Full featured Documentation generator
Multimedia
Created with the Personal Edition of HelpNDoc: Full featured Help generator
Volumi
Il controllo del volume della sintesi vocale rientra nel controllo "multimedia volume"
Created with the Personal Edition of HelpNDoc: Easily create Web Help sites
Variabili
Se una variabile non inizializzata, di fatto il suo valore rimane pari al suo nome (e.g. %PIPPO non
inizializzata verr considerata come valore stringa %PIPPO letterale, cos com')
Le variabili relative a elementi da attivare (wifi, gps,...) se non attivo l'elemento hardware, assumono
come valore il proprio nome (e.g. %LOC se gps spento = %LOC); dunque, per controllare se una
stringa esiste, basta farne il match con il proprio nome e.g. ~ %PIPPO
I nomi di variabili tutte in minuscolo vengono considerate variabili locali (visibili solo dal task in cui
vengono dichiarate); buona abitudine adoperarle quando possibile, per evitare di riempire l'elenco delle
variabili globali inutilmente
Esiste una forma di gestione di pseudo-array con istruzioni per aggiungere (Push) o togliere (Pop)
elementi
CONFRONTI STRINGHE:
o se si usa una stringa tutta in minuscolo il confronto case-insensitive
o puoi usare le wildcard * e +
o "/" (o l'equivalente or) indicano la condizione OR
o "!" ad inizio parola indica not
o NEL CASO DI STRINGHE INDICANTI CHIAMANTI (caller-id) possibile adoperare anche
altre 2 possibilit:

C:ANY indica qualunque persona presente in rubrica, e.g. !C:ANY indica


qualunque numero non presente in rubrica

C:FAV qualunque contatto preferito (starred)


Split stringhe: questo comando permette di suddividere una stringa in tante variabili, eventualmente
cancellando la variabile di partenza automaticamente (delete base).
Esempio: SPLIT (delete base) %MOM , formatted_address
Spezzetta %MOM in tante variabili %MOM1, MOM2,.. dove presente il delimitatore
"formatted_address" : che non sar presente in nessuna delle nuove variabili ed alla fune cancella
%MOM
Con Variable section si pu estrarre un pezzo di stringa (da...a...)
Variable converter: permette conversioni informatiche (byte, Kb,...), matematiche (esadecimale,
binario,...), lunghezza, peso, tempo, processazione URL (encode, decode)
Created with the Personal Edition of HelpNDoc: Free help authoring environment
23 / 52
Scripting
E' possibile eseguire singoli comandi Linux con Misc -> Run shell
Elenco dei comandi: https://github.com/jackpal/Android-Terminal-Emulator/wiki/Android-Shell-Command-
Reference
E' possibile richiamare script SL4A con Misc -> Run script
SL4A permette di eseguire script di vari linguaggi (tra cui Python).
Purtroppo spesso sono inaffidabili (ottengo spesso interruzione imprevista SL4A processo google.com.
googlecode.android_scripting)
La cosa migliora eseguendo lo script facendo aprire anche il terminale (con l'opzione Terminal
apposita di Run Script di Tasker); per chiudere poi la finestra del terminale alla fine dello script, occorre
inviare 2 pressione di pulsante Back con Input -> Button -> Back (uno per chiudere la tastiera, l'altro per
chiudere il terminale; tutto ci possibile solo per cellulari rooted)
Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator
Menu
E' possibile creare dei menu/toolbar per la scelta di applicazioni da lanciare.
Basta creare un task formato dalle singole istruzioni: ciascuna funger da elemento di scelta del menu (le
etichette/label, se specificate, appariranno accanto ai singoli elementi); quindi, occorre impostare (tramite
l'icona della chiave inglese & tool del task) il task come di tipo "Menu" e non Execute.
In generale come elementi si usano o l'istruzione LoadApp (per eseguire un programma esterno) o Run Task
(per eseguire specific task), ma chiaramente si possono usare anche le altre istruzioni.
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
Input - tastiera
24 / 52
Ci sono vari modi per richiedere un input:
Popup task icon (in Alert) permette di far apparire un testo con 1-2 icone da clickare
Variable query (in Variables) permette di chiedere un input di testo all'utente; il risultato eventualmente
pu essere elaborato con le funzioni di conversione (sempre in Variables)
Dalla versione 1.2 sono state introdotte le Scenes che permettono di costruire una vera e propria interfaccia
grafica (con pulsanti, testi, edit, slide,...)
TASTIERA
Per far apparire la tastiera: Input -> Soft keyboard
Per farla sparire credo si debba simulare la pressione del tasto hardware back (freccia indietro) con i
comandi pi sotto riportati (non serve richiamare il comando soft keyboard)
E' possibile simulare:
la digitazione di un testo tramite Input -> Type
la pressione di taluni pulsanti hardware tramite:
o Input -> Button per alcuni pulsanti hardware (Search,...)
o Input -> DPad per simulare i pulsanti di direzione
o App -> Go Home (per simulare la pressione del pulsante Home)
Created with the Personal Edition of HelpNDoc: Easily create PDF Help documents
Files
E' possibile sfruttare la funzione Write (in Files) per ad esempio creare file di logging (grazie all'opzione
Append); una dir usabile (almeno su HTC desire) temp/ (che si trova sulla SD card)
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents
Tempo / time
Le variabili di tempo/data comprendono:
%TIME: riporta l'ora attuale in formato leggibile (10:42)
%TIMES: riporta l'ora attuale in numero di SECONDI (dal Gennaio 1970)
Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents
Estensioni
E' possibile accedere a funzioni di applicazioni esterne tramite:
Specifici plugin Locale-compatibili (vedi sezione dopo) o contattando direttamente lo sviluppatore di
Tasker
Script SL4A (vari linguaggi) con il comando Misc -> Run script
Tramite i comandi presenti in Misc -> Action intent e Component Intent
Oltre a ci si possono eseguire comandi Linux tramite Misc -> Run Shell (vedi sezione scripting)
Created with the Personal Edition of HelpNDoc: Full featured Help generator
Plugin
E' previsto il controllo diretto di alcune applicazioni tramite apposito plugin.
Pare che possa contare anche l'ordine di installazione "...you need to install Tasker after JD so that Android
knows what the JD permission is. "
25 / 52
Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator
26 / 52
Tips & tricks
NOTA: TASKER NON PUO' FUNZIONARE DALLA MEMORIA SD per motivi tecnici legati ad Android.
Se non funziona nessun programma, verifica che nella schermata di Tasker sia attivo il pulsante in
basso a destra (scritta On con barretta verde)
In ogni profilo, meglio specificare ogni volta tutti i settaggi (cos se in uno si usa l'airplane mode, bene
negli altr specificare di toglierlo, altrimenti rimarr attivo anche al cambiare del profilo)
Attenzione che il pulsante hardware back (la freccia indietro) equivale a SALVARE e chiudere l'attuale
finestra (non annulla quindi).
Per eseguire in background una applicazione, occorre caricarla App -> Load App e quindi simulare la
pressione del tasto Home -> Go Home
Luminosit display: a volte non sembra funzionare mettere una dietro l'altra l'istruzione di auto-
brightness off e regolazione della intensit della retroilluminazione; se puoi, distanziale con altre
istruzioni
La propriet Cooldown dei contesti evita che un evento venga eseguito pi spesso di tot tempo...In
alternativa, se ad esempio si vuole eseguire un compito soo la prima volta che si arriva in un posto, si
pu adoperare una variabile sentinella che viene definita all'arrivo in un posto e ridefinita in un altro
Tasker sveglia il cell dallo stato di sleep ogni 10 minuti (per settings) per fare alcuni controlli (per cui,
male che vada, i trigger scattano ogni 10 minuti)
I task vengono messi in pausa quando il telefono va in sleep mode: se necessario, si pu specificare
nelle propriet del task di rimanere acceso (ma a rischio di consumare batteria)
Le label sono comode anche per commentare il testo (oltre che usarle per i goto)
Non so perch, ma se si devono modificare diverse modalit di funzionamento del telefono (modo
areoplano, wifi,...), il modo aeroplano va modificato per primo altrimenti succedono strani incroci...
:-/
Se viene modificata una qualche impostazione di dati nell'Enter settings di un profilo, esse verranno
rimesse come prima all'uscita. Per evitare ci vi sono 2 possibiit:
o rimettere gli stessi settaggi nell'Exit settings, in modo da dire a Tasker che non vanno
modificati
o cambiare i settaggi chiamando un altro task (con Perform Task)
Per stabilire se il GPS fix ha avuto successo, necessario: 1) salvare l'orario attuale, 2) tentare un
fix, 3) controllare se l'orario salvato pi vecchio dell'orario dell'ultimo fix. E.g.
o Variable Set, %STARTMS, %TIMES
o Get Location
o RiuscitoFix, If %LOCTMS > %STARTMS
L'attivazione dello scambio dati (DataMobile), implica l'accesso immediato alla rete internet che
pu essere tramite WiFi o la rete telefonica 2G/3G; finch c' lo scambio dati attivo, uno dei due
sistemi deve essere attivo; quando pu, il sistema (penso Android direttamente, pi che Tasker)
preferir il WiFi. Dunque se attivo 2G/3G ed in un 2 tempo si attiva il wifi, il 2G/3G viene disattivato
automaticamente; viceversa se disattiva il WiFi, automaticamente passer al 2G/3G.
o Nel caso di profili condizionati da condizioni durature (status: e.g. per attivare scambio dati
quando faccio partire gmaps), poi tasker automaticamente rimette tutto come prima una volta
terminato il contesto (fatto che rende non indispensabile il task di uscita)
Tratto da FAQ Android: Con il WiFi connesso, la connessione 3G/2G si spegne:il telefono d la
priorit alle connessioni WiFi, pi veloci. Dunque in presenza di un HotSpot o di un punto di
accesso memorizzato user quello per la connessione invece che il 3G/2G dell'operatore.
Esperienze di altri e suggerimenti
CONTESTO WIFI
It is easy for the tasks to backfire or not work if you don't take into account certain factors. The location task
for the Wi-Fi to turn on in my house all of the sudden wasn't working. After some tinkering and thinking I
27 / 52
realized that the GPS was turned off.
The location tasks are determined first by GPS then network second. If the location task has to rely on the
network (closest cell tower) it is not very accurate, once it put my position outside of 50 meters of my house
(the original setting) it thought I was not in my house and turned the Wi-Fi off. The solution was to widen the
radius to 200 meters. No problem now.
with the Car Dock settings. I had the tasks centered around Custom Car Home (car dock replacement,
great program BTW). Well, when I would exit out of CCH for whatever reason, the tasks would not work. The
solution? I focused the tasks around the state of the phone (in car dock) rather than the application (CCH)
Now, the really good news: Tasker can use most, if not all Locale plugins, so for the very few things that
Locale can do that Tasker can't, Tasker actually can, or for complex things in Tasker, there may be a plugin
to make it easier.
For instance, I change my Google Voice settings (which phones to ring, and whether I want to screen calls
or not) based on my location. This could be done in Tasker with the HTTP tasks, but would be very
complex. I just use the Google Voice plugin for Locale and it is a piece of cake.
Consigli per individuare wifi (risparmiando batteria)
salta via se attiva la modalit aereo (anche perch forse a modulo telefonico spento la ricerca di cella
telefonica di tasker ritorna sempre true
prima cercare se nella cella telefonica di casa (piuttosto ampia)
se s. ogni tanto cercare se esiste una rete con lo stesso nome di casa
se s, accendere il wifi e collegarsi
STABILIRE SE CONNESSO WIFI
sfruttare lo status WiFiConnected adoperando i task di entrata ed uscita
Cercare la parola CONNECTED nella variabile %WIFII (senza imbarcarsi in profili/status appositi)
RITARDARE SPEGNIMENTO WIFI:
Versione un po' sbagliata
In your Exit Task:
-> New Task - Tasker - Wait ... define time
put it before the WIFI OFF task... that should do the trick.
if you do this your way, wifi will turn off after the delay even if after that time, the conditions for it to turn off
are no longer valid.
Versione migliorata che non chiude il wifi se nel frattempo del delay nata la necessit di tenerlo acceso
Enter task:
set variable %NAME to 1
turn on wifi
Exit task:
clear variable NAME
wait 30s
turn off (suppongo che l'IF sottostante sia quello specifico dell'istruzione turn off wifi)
if NAME (doesn't match) 1
Quindi il wait andr a vuoto nel caso in cui sia stata ridefinita nuovamente la variabile %NAME (distrutta
all'inizio dall'exit task); un nuovo timer comunque verr creato dalla nuova routine
28 / 52
INTERROMPERE SPEECH
;CREO IL TASK SHUSH che cancella la variabile %RINGING e fa terminare lo speech con Shut Up
Task: Shush
Variable Clear %RINGING
Shut Up
; Profilo attivato dallo status di chiamata in arrivo
Incoming Call
; Task in entrata
Enter:
Set Var %RINGING 1
Say Hello
Wait Until Not Set %SPEECH
Goto 2 If Is Set %RINGING
; Task in uscita
Exit: Shush
; Profilo attivato dall'evento di alzata cornetta (risposta alla chiamata)
Event: Phone Offhook
Enter: Shush
Pent
CTL SE ACCESSO AD INTERNET
How do I test whether I can reach the Internet (ping) ?
First setup a task to do the test:
Task: DATACHECK
Variable Clear %HAVEDATA
HTTP Get URL (a known webpage)
Variable Set %HAVEDATA, 1 If [ %HTTPR = 400 ] {400???? Http Get in generale determina una serie
di codici come risposta della bont dell'operazione, vedi http://en.wikipedia.org/wiki/
List_of_HTTP_status_codes} Per questo per me sarebbe meglio ragionare in termini di numeri < o > (la
serie 4.xx quella degli errori...), forse bisognerebbe porre il controllo <400 e non =400
The test needs to be in a separate task because the task might be aborted if the HTTP Get fails.
When you want to test, do:
Task: CALLER
Perform Task DATACHECK (set Priority field high)
If Is Set %HAVEDATA
...
DO THINGS
...
Endif
Important: the Perform Task action must run the DATACHECK task with a high priority because
otherwise CALLER will continue before DATACHECK is finished.
NOTA : quando HTTP Get determina un errore e.g. pagina non trovata --> appare PopUp "Unknown host
error" che INTERROMPE IL TASK IN ATTUALE a meno che non sia stata specificata l'opzione di
continuare se errore (presente nel comando stesso);
29 / 52
LOCALIZZAZIONE
hai 2 possibilit :
1) se hai un orario di lavoro fisso potresti impostare che dalle 8 alle 14 si mette in modalit lavoro e poi torna
alla modalit di prima, magari lasciando casa sempre attivo ( viene temporaneamente sostituito da "lavoro" e
poi torna in mod. "casa" ) o imposti delle condizioni di uscita ( leggi sopra)
2) cosa migliore secondo me, fai che il cambio profilo avvenga tramite la localizzazione gsm, che non
dovrebbe consumare troppa batteria e nonostante la scarsa precisione non dovrebbe darti problemi a meno
che non lavori accanto a casa tua
per la 2) vai su tasker e fai new, scegli "state" e poi " cell near", premendo scan scansionerai le celle gsm
di casa , se grande dovresti durante la scansione fare il giro della casa... poi imposti le condizioni che vuoi
tipo suoneria on ecc.
poi fai lo stesso scansionando le celle gsm a lavoro, cosa che dura 5 minuti se tanto
a me facendo cos funziona benissimo anzi vorrei far si che il controllo sulla cella d tasker venisse fatto ogni
5 minuti e non meno, tanto per non consumare batteria per niente
poi le possibilit sono tantissime e una volta preso un po' la mano non complicato come pu sembrare
ah volendo la localizzazione si pu fare anche tramite gps, molto pi precisa ma consuma di pi ( conta che
dovresti lasciare il gps sempre attivo) e nel mio caso non avrebbe senso, oppure si pu (credo) anche
tramite il 3g ma credo sia molto simile alle celle gsm
Cell near= usa la cella telefonica
Net = utilizza la rete internet; importante specificare un ampio raggio intorno al punto da controllare
Net & Wifi = usa anche l'eventuale wifi in base a mappe di distribuzione wifi (e.g. by google)
Wifi near= riconosce se nelle vicinanze c' un particolare wifi e lo usa come trigger di posizione (non occorre
collegarsi a quel wifi, basta sia presente); Check the Wifi Toggle box if you don't want wifi on all the time. It
will then be toggled when Tasker needs to do a scan.
Tasker rates contexts for power-hungriness in the following (ascending) order:
Other State
Day / Time
Calendar Entry State
30 / 52
Cell Near State
App
Network Location
Wifi Near State
GPS Location
Proximity Sensor / Gesture Event / Orientation State (accelerometer activation)
Thread su come risparmiare batteria: http://forum.xda-developers.com/showthread.php?t=1031743
-----------------
I added a context of %SCREEN ~ off and now nothing triggers. "off" is lowercase.
For the context you added, are you using Variable Set or Variable Value? Variable Set is an event, and
will only trigger at the moment the screen turns off. Variable Value is a state, and will be active during
the entire period that the screen is off.
----------------------------
I've done a bit of Googling but don't seem to be able to locate a profile that only enables auto sync
when the phone is connected to wifi?
New, OK, State, Wifi Connected, Done.
+, OK, Net, Autosync, On, Done, Done, Apply.
> Just to confirm, I set an exit task to turn it off. Is that correct?
Nope, autosync is a setting so should be restored when the profile goes inactive
----------------
http://groups.google.com/group/tasker/browse_thread/thread/d8d40572cb74fe1b#
a very awesome solution to clearing notifications!
Here is the quote from that thread:
[quote]
I found a way to get Tasker to clear another app's notification. The
example I used was the notification of a new SMS message from the
Messaging app.
Create a task with these steps:
1. App: Load App: Messaging.
2. Tasker: Wait: 2 seconds
3. App: Go Home.
Trigger the task, the app launches, clears its own notification, then
returns to Home. Step #2 may be optionally, depending on your
device.
-----------------
In 1.0.9 there is a new variable %SMSRN that is the name. Works great.
As for the Stream... If you choose Media it will not pause or mute
whatever music playing. Since I have a car bluetooth, I use Call as
the stream, then set the Media volume to 0 before the Say.
----------------------
> I tried Locale (the app) this morning, and the lag as I passed through
31 / 52
> a 2KM circle was such that the message was never sent. In short, it
> seemed to never detect that I had entered the circle.
For Tasker, it will depend on the frequency you set the updates to.
Menu / Monitor / Display Off / On settings, depending on whether your
phone is off while going or not. You might want a bigger circle too,
I'm
sure locale lets you specify that as well though.
---------------------------------------------
Maybe the GPS is struggling with you moving all the time.
You could also try deselecting 'Net'
in the location context if you're always using GPS, sometimes network
location fixing gives wild values.
You can also try setting the cooldown for the profile: tap on the
location context, click Profile, click Properties,
move the Cooldown slider all the way to the right.
That means the profile can't activate more than once every 30 minutes.
-----------------------------
> Error: SMSnull-value sending to :number here:
Ok, I figured out why it does this. If the text is too long (over 160
characters) it doesn't work. Once I reduced my text size, it allowed
the message to be sent. I set up an automated SMS to send if I receive
a message from X to Y times.
-----------------
You might want to try something like this:
Context: Power AC
Enter Task:
GPS On
Get Location [ Source:GPS Timeout:100 ]
Variable Set ACGPS = 1 If (%TIMES - %LOCTMS) < 10
Wait 30 seconds
Variable Clear %ACGPS
Context: Variable Value %ACGPS = 1
Context: Location <work>
Enter Task:
Load App [ Mileage Tracking App ]
Every time you plug into AC, Tasker will try to get a current GPS fix. If it's successful, it will
set the %ACGPS variable to 1, which will allow the second profile to activate ONLY IF you're
at work. Clearing the variable after 30 seconds will prevent the second profile from activating
when you plug in somewhere else and subsequently arrive at work.
------------------
My "wheres my droid" profile(s) I setup on my son's phone sends a
response SMS to the inquirer, similar to the following:
My GPS location within 17 meters ishttp://maps.google.com/maps?q=43.1234567,-75.7654321
My speed is 19.5 m/s
So if his phone is ever lost/stolen, I can use any smartphone or
internet-connected computer to see where it is and how fast it's
32 / 52
moving. This is great, but what if I only have access to a "not so
smart" phone - something where I can't click on the link in the SMS?
We reverse geocode the coordinates into a formatted street address,
that's what! Here's the task that does it:
1. HTTP Get [Server:Port: maps.googleapis.com] [Path: maps/api/
geocode/json?latlon=%LOC&sensor=true] [Output File: Tasker/
FINDGPS.txt]
2. Variable Clear [Name: %FINDGPSADDR]
3. Variable Set [Name: %FINDGPSLN] [Value: 1]
4. Read Line [File: Tasker/FINDGPS.txt] [Line: %FINDGPSLN] [To Var:
%FINDGPSADD]
5. Variable Set [Name: %FINDGPSADDR] [Value: Unknown] If %FINDGPSADD
Doesn't Match *"status": "ok"*
6. Stop If %FINDGPSADDR Matches unknown
7. Read Line [File: Tasker/FINDGPS.txt] [To Var: %FINDGPSADD]
8. Variable Set [Name: %FINDGPSADDR] [Value: Unknown] If %FINDGPSADD
Matches EOF
9. Stop If %FINDGPSADDR Matches unknown
10. Goto 7 If %FINDGPSADD Doesn't Match *formatted_address*
11. Variable Split [Name: %FINDGPSADD] [Splitter: :]
12. Variable Set [Name: %FINDGPSADD] [Value: %FINDGPSADD2]
13. Variable Split [Name: %FINDGPSADD] [Splitter: "]
14. Variable Set [Name: %FINDGPSADDR] [Value: %FINDGPSADD2]
15. Variable Join [Name: %FINDGPSADD] [[Joiner: .] [Delete Parts]
16. Variable Clear [Name: %FINDGPSADD]
17. Variable Clear [Name: %FINDGPSLN]
18. Delete File [File: Tasker/FINDGPS.txt]
19. Popup [Text: %FINDGPSADDR] [Time: 38] [Center Text]
The formatted address is stored in %FINDGPSADDR. For actual use you
can remove action 19 (Popup).
This could probably be cleaned up some, and use some additional error
checking, but... well, there you go. :)
Notes:
1. Read Line (action 4) doesn't seem to accept a fixed value for
Line, so I set a variable and used it in place of a fixed value. I
found it necessary to specify line 1 in the first Read Line action to
make sure we started reading at the beginning of the file each time
the task runs.
2. %FINDGPSADD is used/reused to minimize cleanup steps later
3. Variable Join (action 15) is used solely to speed cleanup
Pent is about to release 1.0.10 which will include a GET LOCATION
action. This could resolve several issues making current profiles
suggested in the wiki highly unreliable.
--------------------
DA COORDINATE AD INDIRIZZO Reverse geocoding
http://www.findlatitudeandlongitude.com/find-address-from-latitude-and-longitude.php
http://www.freegis-italia.org/index.php?option=com_content&task=view&id=383&Itemid=80
http://gmaps-samples.googlecode.com/svn/trunk/geocoder/reverse.html
geocodo on tasker
33 / 52
http://www.reddit.com/r/tasker/comments/d9s6r/reverse_geocode_loc/
Servizi di reverse geocoding
http://www.geonames.org/export/reverse-geocoding.html
--------------
Tasker e SL4A (tra cui python)
http://tasker.wikidot.com/sl4a
-------
I discussed this issue in an earlier message. If %SMSRN does not
contain any value, then Tasker just shows "%SMSRN" or SAYs "percent
SMSRN". This happens when anSMSmessage is sent without a name
attached to it.
I have a context that readsSMSmessages to me when I am in my car,
and my bluetooth speaker is attached.
1. I perform a variable set of %SMSNAME to %SMSRN IF %SMSRN is set
2. I assign this same variable (%SMSNAME) to "an unknown caller" IF
SMSis NOT set.
3. I also assign the same string to %SMSRN IF SMSRN equals "?"
Then I have a SAY command that says %SMSNAME instead of %SMSRN.
You can do this same technique in your popup, and you'll either get
the sender's name, or "An unknown Caller" instead of %SMSRN.
I thought it was a bug, as I figured an unset variable would say
nothing instead of saying or popping up the variable name.
I still need to assign another variable, which skips theSMSmessage
IF theSMSmessage has already been read to me.
------------------------
To arm and disarm my home alarm, I simply paste the following command
into any browser:
http://username:passw...@my.dyndns.site.org/2?A=4&p=1&X=1234
Dyndns.org redirects to my home router, and the alarm IP card
authenticates, and the parm string tells it to arm or disarm the
burglar alarm.
It's quite effective when entered in a browser. But, when I use
Tasker's HTTP Post, I just can't get it to work.
I've tried every possible combination, but no success.
Following is how I set it up:
Server:Port: username:passw...@mysite.org
Path: blank (though I did try 2/)
Data:
A=4
p=1
X=1234
Any ideas?
34 / 52
Why Post ? The browser will use Get.
> I've tried every possible combination, but no success.
> Following is how I set it up:
> Server:Port: username:passw...@mysite.org
> Path: blank (though I did try 2/)
Should be 2 according to your original URL.
> Data:
> A=4
> p=1
> X=1234
Also try setting the mime type e.g. text/html or url-encoded.
When it fails: what is the response code ? (variable %HTTPR) ?
That was it. Using GET was what I was missing. Works like a charm...
now come up when I pull into my driveway, my house automatically
disarms. And, as I leave it automatically arms. Now, I'm off to the
market to buy another copy of tasker for my wife's phone!!
Created with the Personal Edition of HelpNDoc: Full featured Documentation generator
Consigli di programmazione
CONSIGLI:
Per lavorare con variabili booleane (si/no,on/off, 0/1) conviene sfruttare i controlli sulla esistenza
o meno di una variabile (SET, NOT SET) in quanto Tasker mantiene in memoria tutte le variabili
usate da tutti i programmi ed incasinerebbe inutilmente l'elenco tenere anche variabili booleane usate
solo temporaneamente all'interno di un task; conviene invece porre come condizione finale di uscita dal
task la non esistenza della variabile (IF NOT SET....); per farla esistere basta assegnarle un valore
qualsiasi (ad esempio 1), ricordandosi per che in futuro, per azzerare la variabile, non baster togliere
l'istruzione di assegnazione ad 1, ma occorrer cancellare la variabile con CLEAR perch Tasker se ne
ricorda
Utilizzare quando possibile variabili locali (quelle il cui nome tutto minuscolo) rispetto alle globali;
oltre a non incasinare l'elenco generale delle variabili globali, pare risulti pi efficiente sotto diversi punti
di vista.
Sfruttare la label per commentare il testo
Servirsi del piccolo help presente nella schermata di editing di ogni singolo comando (basta premere
sul pulsante ), accettando di scaricare l'intera guida sulla scheda SD
Esiste la possibilit di effettuare backup sulla SD (tasto Menu -> Data -> Backup): meglio usarla!
Created with the Personal Edition of HelpNDoc: Free help authoring tool
Debug
Un metodo possibile per il debug di creare dei Popup o usare la sintesi vocale per contrassegnare taluni
passaggi nella esecuzione del programma.
Uno dei vantaggi che, se si esegue il task "inquisito" direttamente dall'editor di Tasker (con il pulsante
Test presente nell'editing) possibile scorrere il programma mentre lo script ci dice a che punto arrivato.
Conviene definire una variabile (ad esempio %DEBUG) da adoperare nella condizione IF di ciascun
comando Say in modo che si possa attivare/disattiva a piacimento il debugging.
Attenzione per che le priorit cambiano molto a seconda che si faccia partire il task dall'editor (pulsante
Test con altissima priorit) o richiamandolo da altri task.
Se si lavora quindi con pi task & priorit, conviene creare un widget di lancio per lavorare sul funzionamento
35 / 52
"reale"; inoltre conviene crearsi un widget che dice quali task sono in attuale esecuzione (POPUP %RUN)
Un'altra alternativa creare file di logging con la funzione Write in Files (con l'opzione Append)
Created with the Personal Edition of HelpNDoc: Full featured Documentation generator
Cose utili
SMS
Text From/Date/Subject/Time (monitored)
%SMSRF / %SMSRN / %SMSRB / %SMSRD / %MMSRS / %SMSRT
The sender address, name, body, date and time of the last text (SMS or MMS) received.
These variables will be empty until the first time a text is received after they have been referenced because
Tasker does not monitor SMSs unless it's needed.
Sender name is set to sender address of no contact could be looked up. It's unavailable on Android versions
prior to 2.0.
Subject will only be set if the last text was an MMS.
Roaming
%ROAM
on if device is roaming on the current telephone network, otherwise off.
WiFi Info
%WIFII mostra una marea di dati sulla rete tra cui il nome della stessa (e.g. Belkin...)86F
When connected to an Access Point (AP), shows human-readable data about the AP. When not
connected, show details of the most recent Wifi scan results for nearby APs.
Per controllare se sei collegato a casa in wifi: %WIFII matches *Belkin.86Fx*
WiFi Status (dynamic)
%WIFI
Whether WiFi is on or off. Note: if WiFi is enabling or disabled, in fact anything but enabled, it's classed as
off.
String confronto
Matching Rules
Se il pattern vuoto, sar sempre valido/vero
Altrimenti, deve corrispondere completamente.
La parola "or" ed il simbolo "/" separano alternative possibili
Il "*" indica qualsiasi numero di qualsiasi carattere
Il "+" indica 1 sola occorrenza di qualsiasi carattere (non sicuro)
Il "!" all'inizio significa not
Il match case-insensitive, a meno che non si specichi almeno 1 lettera maiuscola
if a pattern is left blank, it will match against anything
if it is not blank it must match the whole target text
/ means 'or', it divides up multiple possible matches
a * will match any number of any character. It's not possible to specifically match a * character.
a + will match one or more of any character. It's not possible to specifically match a + character.
matching is case-insensitive (magic will match with MagiC) unless the pattern contains an upper-
case letter e.g. Magic* will not match against magically, but it will match against Magic Roundabout
a ! at the very start of a match means not e.g. !*Magic*/*Yellow* matches anything not containing the words
Magic or Yellow
it is not possible to specifically match a ! character at the start of a target (but you could use *!
36 / 52
Examples
help matches help but not helper.
help* matches helper
*the* matches the (anywhere)
123+ matches 123 and minimally one more character
+ matches anything with at least one character (non-empty)
the*way matches the other way and the first way, amongst others
Localizzazione
I modified my SMS to look like this:
(note: the %LOC is the variable which is at the end of the URL. This URL will link to a google map of your
phone location this way.)
Code:
http://maps.google.com/maps?f=q&source=sq&hl=en&geocode=&q=%LOC
Provider: %LOP Accuracy: %LOA meters
Battery: %BATT %
The provider variable basically just shows you if the coordinates that are being reported to you are GPS or
cell tower based.
I also learned that I can put in a "wait" task (and set it to 15-seconds) after my GPS turns on,
otherwise the coordinates provided aren't GPS based because my GPS doesn't have enough time
to get the bearings before sending the SMS. Then of course the other important task that I added
was to turn GPS off after sending the sms.
I want to change the phone's state dependent on which specific bluetooth device is connected --
can Tasker or Locale do that? Thanks!
2 answers:
Yes. Tasker will do this. When you're setting up the state, choose "bluetooth connected", then click
the magnifying glass next to the "name" field. It will search for paired bluetooth devices. Choose
the one you want and configure states/actions. Then do it again for the other BT device.
I am the developer of Locale.
Locale has a plug-in architecture, and there is a free plug-in available on the Android Market called "Locale
Bluetooth Plug-in" which provides this functionality.
Created with the Personal Edition of HelpNDoc: Easy to use tool to create HTML Help files and Help web sites
37 / 52
Problemi
Da me riscontrati:
L'applicazione UnKeyLocker che ciaccia con il sistema di protezione accensione di Android, non fa
scattare gli eventi...
Difficolt nel gestire le subroutine:
o poich vi un approccio multi-task anche nei confronti delle subroutine, una delle cose pi
difficili eseguire una subroutine attendendone il termine per proseguire con lo script
successivo
o esiste l'opzione di Stop, ma ho l'impressione che non sempre funzioni (s sul forum non sono il
solo ad avere problemi)
o ma soprattutto vi sono le priorit (che valgono sia per l'esecuzione con stop che senza stop) di
difficile gestione nel momento in cui si creano subroutine a loro volta nidificate richiamate poi da
script diversi

risulta difficile tenere conto della successione di priorit di ciascun blocco rispetto agli
altri (i cui rapporti di "forza" determineranno la effettiva sequenza di esecuzione)

vi poi l'aggravante del fatto che eseguendo lo script direttamente dall'editor, allo script
di partenza viene data una super-priorit che cambiare pesantemente i rapporti attesi
con le subroutine; tutt'altro comportamento lo si ha se si esegue lo script tramite
widget dalla home di android (avr una priorit "normale", credo 5 su 10)
o la mancanza di:

un editor da desktop con cui scorrere rapidamente il codice (e.g. per verificare le
priorit assegnate ai diversi pezzi di codice)

una qualche forma di debugging

reale imprevedibilit dell'esecuzione delle subroutine


o costringe a:

disseminare (cosa non facile dato l'editing su schermo ridotto e senza tastiera fisica) il
codice di codice di debug per contrassegnare i punti principali di esecuzione; ad
esempio adopero una variabile mia %DEBUG che se pari ad "on" fa dire delle frasi
(SAY "TizioCaio in esecuzione"....)

adoperare dei meccanismi di WAIT UNTIL con delle variabili ad hoc per forzare una
certa sequenza di esecuzione (e.g. pongo %FINE_PIPPO = "on" solo al termine della
routine Pippo; prima di chiamarla inizializzo %FINE_PIPPO="off" (o qualunque altro
valore diverso da on), chiamo il Task PIppo e quindi aspetto fino a che %FINE_PIPPO
non diventa = on
La geolocalizzazione complessa da gestire: dispone di diversi sistemi (rete telefonica, mappe wifi,
gps), anche combinabili tra loro, controllati da permessi ed attivazioni non sempre sotto il controllo di
Tasker, ritardi di attivazione,....
Il cellulare di per s (per motivi energetici) ha una modalit di funzionamento diversa quando va in sleep
(alcuni secondi dopo lo spegnimento del display), fermando taluni processo; se lo script in corso,
rischia di essere bloccato anch'esso (per cui lo script funziona fino ad un certo punto o riparte quando
viene riacceso il display); possibile specificare di far sopravvivere il task, ma a prezzo di un maggior
consumo....
Problemi noti tratti dalla documentazione ufficiale:
Bugs / Limitations
multiple profiles activating simultaneously: settings with conditions may override the same setting in
another task even when it eventually isn't executed because the condition fails
monitor vars: will not be picked up in task C, when task A calls task B which calls Task C
deletion of widgets does not stop any relevant monitoring (due to variables) until the next monitor restart
a calendar entry matching an all-day event may not (de)activate at the correct time
each application widget icon used will take up about 5k extra on the device, due to caching to work
around an Android bug.
38 / 52
monitoring of SMS and CALL variables is not disabled if all corresponding profiles needing them are
disabled, until the monitor is next restarted
the Dialer and Contacts activities cannot be differentiated. A Context for either of them will also activate
for the other.
long widget names do not scroll with focus
keyguard disable: occasionally the notification pulldown may freeze when using this feature on some
devices/OSs
renaming tasks/profiles: actions which refer to the task/profile name in anonymous widget tasks are not
automatically renamed
Donut Android bug: when an application is exited with the home key, it's several seconds before a
subsequent action in Tasker which involves launching an application takes place.
deleting Tasker does not delete it's Home screen widgets (this is a current limitation of Android)
custom icons sometimes overlap in the icon select window
multiple HTML entities (&xxx;, <, >) in strings are replaced with & when the profiles are saved
if a Time Context has a repeat count, every repeat reduces the profile repeat count (if it has one set)
applying a setting via a menu-type enter task will not result in the previous setting being restored when
the profile deactivates
coming from device off: action take photo: the screen will not come on if the keyguard is enabled
changes made to Profile Properties repeat count occur even if the cancel button is pressed in the Profile
Edit screen
There's an Android limitation that often prevents getting updates
- No Cell Location Updates When Display Off
If you are having trouble connecting to Wifi or BT or GPS and you have Tasker, the app is probably causing
the issue.
Tasker, even with no profiles active, still does WiFi Scan & BT scans and will shut both off if
nothing is found within the specified limit.
Unfortuntely, the default setting its 120 seconds. For me, it takes me a bit to type a long key in for WiFi for
the first time and I finally realized why WiFi would just shut off in the middle of obtaining an IP (therefore
erasing the password).
The same thing goes for BT & GPS, default settings are 120. Its fine, in my opinion, for GPS but scanning
for a BT may take a bit longer.
Anyways, this wasn't common knowledge for me and I hope it helps!
Created with the Personal Edition of HelpNDoc: Free help authoring environment
39 / 52
MIE CREAZIONI
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation
Contexts
CONTEXT di mia creazione
Casa Pd Auto Sync: SE si trova nella cella telefonica di Casa-PD, ogni 30 minuti (nell'orario tra 7 e 23)
prova la sincronizzazione WiFi-PD
o Task: Internet Casa PD Temp
Internet Start: SE viene fatta partire un'applicazione che richiede internet (Browser,..),
o Task: Internet App Start
o Task al termine: Internet App Stop
Created with the Personal Edition of HelpNDoc: Easily create Web Help sites
Tasks
TASK DI MIA CREAZIONE
Internet Casa Pd: solo se attivo profilo casa, prova la sincronizzazione WiFi-Pd per 4 minuti (e
rimetta a posto come prima il WiFi)
o STOP se non attivo il profilo casa
o Prova connessione Wifi PD [Task: CheckWifiPd]
o Se riuscita la connessione (%CHECKWIFIPD):

Attiva l'auto-sync

Aspetta 4 minuti

Disattiva l'auto-sync

Ripristina il WiFi alla condizione precedente (by %WIFIOLD)


Internet App Start: Viene chiamata da un profilo attivato dal contesto di esecuzione dei programmi
che usano Internet: questo importante perch, essendo un contesto, buona parte di quello che viene
attivato nel Task di apertura viene poi disattivato in automatico da Tasker alla fine del contesto (fa
eccezione il MobileData, non so perch...per cui lo faccio con il Task di chiusura).
Per evitare fastidiosi on/off se si chiude un programma che usa internet e se ne attiva subito un altro, la
variabile globale %CEINTERNET indica che stata aperta una connessione Internet.
La logica settare tale variabile quando si avvia la connessione ad internet; nel task di uscita, la si
cancella subito e quindi si attende un certo tempo prima di procedere alla chiusura della connessione ;
se nel frattempo stata ridefinita la variabile CEINTERNET, vuol dire che stato riaperto un programma
Internet.
Perch il tutto funzioni, fondamentale impostare la priorit del task Internet App Start su "Abort
existing task" (senn non pu ridefinire la defunta variabile CEINTERNET nel caso ci si trovi nel periodo
Wait del task Internet App Stop)
(purtroppo non esiste al momento il comando Kill Task da script che avrebbe semplificato la logica)
PURTROPPO AL MOMENTO SEMBRA COMUNQUE DISABILITARE WIFI SUBITO ED ACCENDERE
SECONDARIATAMENTE IL MODEM PERCHE' LA CONNESSIONE DATI E' APERTA
o Stop if %CEINTERNET is set (se c' gi in funzione lo script Internet perch aperto da un altro
40 / 52
programma, non eseguo il resto)
o Var CEINTERNET = 1 (indico che avvio l'accesso ad Internet)
o Vibrate 100 (per far capire che lo script partito)
o Stop if %WIFII match *CONNECTION* (cio fermo lo script se gi connesso al WiFi)
o Attivo il WiFi (se Off)
o Airplane off (se on)
o GPS on (se off)
o Mobile data 3G preferred (se esiste, utilizzo la rete pi veloce)
o Mobile data on (attivo lo scambio dati: user WiFi o Modem a seconda delle disponibilit)
o Auto-luminosit on
o Display timeout 1 min 20 sec
Internet App Stop:
o Var CLEAR CEINTERNET (la cancello subito)
o Wait 1 minuto (aspetto un po' per dare la possibilit di far riavviare un altro programma che usa
Internet)
o Stop IF %CEINTERNET=1 (se nel frattempo stato riavviato un programma internet, la
variabile sar stata nuovamente settata)
o Mobile data off
Internet migliore: se possibile, usa il WiFi Pd, altrimenti attiva lo scambio dati 3G
o Prova connessione Wifi PD [Task: CheckWifiPd]
o Se non WiFi, attiva 3G e quindi scambio dati
CheckWifiPd: Se possibile, si collega al WiFi PD.
In dettaglio, attiva il WiFi (salvando lo status in %WIFIOLD) e se riesce a collegarsi con la rete Belkin di
PD riporta %CHECKWIFIPD = on lasciando il Wifi collegato (altrimenti off e chiude il WiFi)
o Salva in %WIFIOLD lo status di attivazione wifi
o Se non attivo il Wifi, lo attiva
o Aspetta 1 minuto o fino alla connessione con Belkin
o Pone la variabile %CHECKWIFIPD = on se effettivamente si collegata a Belkin e lascia il
WiFi attivo, altrimenti off e chiude il WiFi
Loc2readable: cerca di trasformare il risultato grezzo di reverse-geocoding di GMaps in qualcosa di
breve (esempio del formato ampio: http://maps.googleapis.com/maps/api/geocode/json?
latlng=40.714224,-73.961452&sensor=true)
o CLEAR %MOM (se rimane non dichiarata, vuol dire che qualcosa andato storto)
o Http Get maps.googleapis.com/maps/api/geocode/json?latlng=%
LOCLATLON&sensor=false 80 sec timeout
o MOM% = %HTTPD (in %MOM ci finisce il risultato del Get; qui non ci arriva se c'
stato un errore)
o SPLIT (delete base) %MOM , formatted_address (e cancella %MOM una volta fatto)
[spezzetta %MOM in tante variabili %MOM1, MOM2,.. dove presente il delimitatore
formatted_address" : che non sar presente in nessuna delle nuove variabili
o SPLIT (delete base) %MOM2 , "geometry" (cancella %MOM2 una volta fatto)
[spezzetta dove "geometry" %MOM2 nei vari %MOM21, %MOM22,...)
o SET %LOCREADABLE = %MOM21
Save Net Settings: salva in variabili %xxxOLD le impostazioni attuali di networking
o %WIFIOLD = %WIFI (attivazione WiFi on/off)
o %GPSOLD = %GPS (stato GPS on/off)
o %DATAMOBILEOLD = esiste se vi una connessione ad Internet
41 / 52
o %AIRPLANEOLD = %AIR (modo Airplane on/off)
Restore Net Settings: la forma apparentemente pi complessa del necessario per evitare di impartire
comandi inutili al device (e.g. accendere il WiFi quando gi acceso, fatto che sembra comportare brevi
(ma inutili e con dispendio di batteria) interruzioni e ripartenze della funzione
o IF %GPS =! %GPSOLD Se lo stato attuale del GPS diverso da quello che era in
precedenza (salvataggio di Save Net Settings)

IF %GPSOLD = off %GPS off

IF %GPSOLD = on %GPS on
o Stessa cosa per WIFi e Airplane mode
o Per data mobile, invece controllo se Internet accessibile e se lo , creo %DATAMOBILEOLD
Save Display Settings: salva in variabili %xxxOLD le impostazioni attuali del display;PURTROPPO
NON SO COME SALVARE LO STATO DI AUTOBRIGHT (forse facendo il toggle e misurando il
consumo ?)
o %BRIGHTOLD = %BRIGHT (luminosit display)
o %DISPLAYTIMEOUTOLD = %DTOUT (timeout del display)
DataCheck: controlla se sia presente accesso alla rete internet: se esiste, esister anche la variabile
%HAVEDATA. ATTENZIONE: non una semplice subroutine e va usata con specifici accorgimenti:
poich l'assenza della rete (controllata con Http Get) d un errore che ferma il Task in corso (no:
o va sempre chiamata come Task a se stante (Esegui App) e con priorit altissima (l'interruzione
in caso di errore non permette di usare il solito sistema di creare una variabile "civetta" che
segnala la fine del Task [poich verrebbe interrotto ancora prima del settaggio della variabile])
Posizione leggibile (modalit AWAKE): fornisce la posizione geografica attuale in formato leggibile
sfruttando reverse geocoding con Google
Variabili adoperate:

%LOC Coordinate dell'ultimo GPS fix

%LOCTMS Ora dell'ultimo GPS fix valido

%LOCN Coordinate dell'ultimo network localization fix

%LOCNTMS Ora in cui avvenuto l'ultimo network localization

%ORAPRIMA Ora precedente l'inizio del tentativo di localizzazione (per


valutare se sar riuscito un fix pi recente)
Stringhe utilizzabili come risultato:

%FIXOK Esiste se il fix riuscito

%LOCREADABLE Stringa con l'indirizzo in formato testo umano

%LOCLATLON Var in cui finiscono le coordinate "vincenti" da usare come


risultato

%FIXSOURCE Fonte adoperata per la localizzazione effettuata ("gps" o


"net")

%FIXACC Accuratezza della localizzazione effettuata

%FIXTIME Epoca (espressa in tempo assoluto in secondi) in cui


avvenuto il fix della localizzazione attuale

%FIXAGE A quanti secondi fa risale il fix (Tempo attuale in secondi - %


FIXTIME)

%TESTOSMSLOC Var contenente il testo da usare come SMS


o SET %INVIOSMSABILITATO on [abilito la spedizione di SMS di localizzazione nel caso il
valore di questa variabile sia diversa da "off"]
o SAY Richiesta di posizione da parte di %SMSRN (dice il nome del richiedente)
o CLEAR %TENTAANCHEGPS [La potr usare in futuro se vorr adoperare anche il GPS,
magari con SMS diversi; se esiste, fa accendere il GPS ed allungare il timeout di tentativo
localizzazione]
o [SALVO LE IMPOSTAZIONI DELLE RETI E GPS]
o %SNSEND off
42 / 52
o Task: SaveNetSettings (salvo le impostazioni attuali delle reti gps, cell,... per poi
ripristinarle alla fine)
o Wait until %SNSEND on [attendo che effettivamente abbia finito]
o
o [ATTIVO TUTTE LE RETI E POSIZIONAMENTI]
o (IN REALTA' HO TOLTO QUESTA OPZIONE: DOVREBBE FARLO GIA' MOBILE DATA) WiFi
On [Utile anche per localizzare)
o GPS On IF esiste %TENTAANCHEGPS
o MobileData On (sceglier da solo se usare wifi o rete)
o %ORAPRIMA=%TIMES Salvo l'ora attuale (servir in seguito per capire se il fix andato a
buon fine)
o WAIT 10 secondi [per dar modo che si attivi un po' tutto]
o IF %TENTAANCHEGPS, %TIMEOUTTENTATIVO=120 ELSE =40 [uso timeout diversi a
seconda che vi sia anche il GPS]
o [RICAVO LA POSIZIONE ATTUALE]
o Get Location (Any, %TIMEOUTTENTATIVO): cerco di ricavare (per il tempo specificato in sec
nella variabile)la posiziona attuale, sia con le reti che con GPS
o
o [SCELGO IL RISULTATO MIGLIORE]
o %LOCLATLON = %LOCN Predispongo all'uso delle coordinate fornite dalla rete Network (%
LOCN (var. dinamica) : latitudine e longitudine dell'ultimo network location fix)
o IF %LOCTMS > %LOCNTMS --> %LOCLATLON = %LOC Se il GPS fix pi recente di
quello del Network, allora ne adopero le coordinate (%LOC (dinamica) : latitudine e longitudine
dell'ultimo GPS fix)
o CLEAR %LOCREADABLE [Elimino questa variabile, per capire in futuro se sar andata a buon
fine la conversione in formato umano delle coordinate]
o PERFORM DATACHECK priority 9 Stop [Ctl se vi accesso a Internet: la variabile %
HAVEDATA esister solo se vi accesso alla rete; serve alta priorit]
o IF %HAVEDATA IS SET [esiste accesso ad Internet]

[CONVERTO IN FORMATO LEGGIBILE DA UMANI TRAMITE GMAPS]

Task: LocLatLon2LocReadable con priorit alta (contiene Http get) e modalit


AWAKE: Converto le coordinate contenute in %LOCLATLON in un formato leggibile
mettendo il risultato in %LOCREADABLE
o END IF
o %FIXSOURCE=net Dapprima per default metto che la sorgente dei dati il network, ma
casomai la cambio con quella del GPS se migliore
o %FIXACC = %LOCNACC Accuratezza del network
o %FIXTIME = %LOCNTMS Epoca dell'ultimo fixing network
o IF %LOCTMS > %LOCNTMS Se il fixing del GPS pi recente del network

%FIXSOURCE=gps

%FIXTIME = %LOCTMS

%FIXACC = %LOCACC Accuratezza del GPS


o END IF
o CLEAR %FIXOK
o SET %FIXOK on (ma va bene qualunque cosa), IF %FIXTIME > %ORAPRIMA
o
o %RNSRUNNING on
o Task: Restore Net Settings Rimette a posto le impostazioni di rete ed eliminer la variabile %
RNSRUNNING una volta finita la subroutine
o WAIT Until Not Set %RNSRUNNING
o
o [GESTIONE RISULTATI FINALI PER PREPARARE TESTO SMS]
o %TESTOSMSLOC = "Localizzazione non riuscita (forse cellulare spento o in zona non
43 / 52
raggiungibile)" IF %FIXOK Not Set [non riuscita affatto la localizzazione]
o IF %FIXOK Set

%TESTOSMSLOC = %LOCREADABLE IF %LOCREADABLE Is Set [localizzazione


avvenuta ed in formato umano: uso questa]

%TESTOSMSLOC = "Localizzato, ma senza indirizzo preciso: le coordinate sono: %


LOCLATLON", IF %LOCREADABLE Is NOT Set [localizzazione avvenuta, ma non
disponibile in formato umano: do le coordinate]

SET %TESTOSMSLOC (append mode) = " (Precisione= "+%FIXACC+" m)"


o END IF
o SET %TESTOSMSLOC (append mode)= (ora %TIME)
o SEND SMS Number=%SMRF, Message=%TESTOSMSLOC IF %INVIOSMSABILITATO<>off
o STOP - IL RESTO SONO RIMASUGLI DI UN LISTATO PRECEDENTE...
o %FIXOK= off Per default considero che il fix andato male
o %FIXOK = on IF %LOCNTMS > %ORAPRIMA Segno che il fix andato bene se quello del network
pi recente di quando ho iniziato il ctl (insomma, riuscito!)
o %FIXAGE = %TIMES - %LOCNTMS Vecchiaia del fixing (in secondi) del network

%FIXAGE = %TIMES - %LOCTMS Vecchiaia del fixing (in secondi) del GPS

%FIXOK = on IF %LOCTMS > %ORAPRIMA Fix GPS andato bene


ATTENZIONE: HO DATO IL COMANDO DI MANTENERE AWAKE SIA A Posizione
Leggibile che a LocLatLon2LocReadable
o DA CTL CHE NON SUPERI I 160 CHAR PER L'SMS
o Al limite dai pieni poteri (rimanere acceso), ma crea un task a tempo che lo distrugger
sicuramente per non far fuori la batteria
o
o POP di debug:

%LOCLATLON Var in cui finiscono le coordinate "vincenti" da usare come


risultato

%LOC Coordinate dell'ultimo GPS fix

%LOCTMS Ora dell'ultimo GPS fix valido

%LOCN Coordinate dell'ultimo network localization fix

%LOCNTMS Ora in cui avvenuto l'ultimo network localization


PROBLEMI:
Spesso trova la rete non raggiungibile e d "Unknown host error" che blocca il programma con un popup
e non termina proprio...cosa disastrosa data l'opzione Awake attivata (che per non funziona tanto bene
visto che il problema probabilmente il fatto che andando in standby, viene in realt spento il
DataMobile per cui poi la ricerca su Internet d errore.....insomma, un misto di sleep ed awake con il
peggio di entrambi. IL PROBLEMA SEMBRA ESSERE JUICE DEFENDER CHE BLOCCA LE RETI... :-/
Rimane acceso il DataMobile: la variabile %DATAMOBILEOLD a volte viene messa su On anche
quando non c' la rete... :-/ Per sicurezza, cancello sempre tale variabile, anche se mi interromper
Internet ad ogni richiesta
E' necessario il wifi: sembra migliroare la precisione in alcuni contesti
E' assurdo il messaggio che non sei raggiungibile: in tal caso, non puoi ricevere nulla....
Se puoi, metti le coordinate anche sul messaggio con indirizzo (e vedi s puoi tagliare decimali)
Comando Widget per abilitare o meno la rintracciabilit (magari invia messaggio di non disponibilit al
tracciamento in questo caso)
Gestire il comando 66 che attiva il GPS...in effetti potrei far scattare l'evento con 6 iniziale e poi rifare il
controllo sul testo con 6 o 66
Decidi come gestire se ti arriva pi di una richiesta mentre stai ancora lavorando sulla precedente (direi
di abortire le nuove)
44 / 52
Created with the Personal Edition of HelpNDoc: Full featured Help generator
45 / 52
IDEE FUTURE
NELL'IMMEDIATO:
Ritardi in attivazione/disattivazione internet (il lancio di un'altra applicazione internet fermer
definitivamente il timer (che quindi non scatter))
Migliorare la gestione del Market
Quando connetti e sei a PD con Wifi, attiva wifi, fai partire Market ed aggiorna (magari con cool
down per non esagerare)
Doppio allarme mattina quando hai lavoro VR (oppure un ctl con gps per vedere se sei sul lavoro...
ma magari sei per strada; forse conviene ctl se sei ancora a casa; attenzione poi che le celle sono
molto poco affidabili -> falsi allarmi)
Eventuali pseudonimi nel leggere i mittenti di SMS e chiamate
Scuotere/girare il cellulare per eliminare le notifiche presenti
Gestione cinema con blocco a tempo (sblocco se capta BT connesso della macchina)
Gesture (e.g. Verticalizzazione) per farsi leggere un messaggio appena arrivato (almeno in Aperto
[in car dovrebbe farlo automaticamente)
Gestione zone dove non riceve: verificare solo ogni tanto se vi collegamento (per risparmiare
batteria); complicato: prima verificare che il collegamento non ci sia da diversi minuti (while not )
e solo allora iniziare a fare ctl saltuari, magari a frequenza via via maggiore e magari mostrando un
pulsante o altro per provare a ricollegarsi o resettarsi istantaneamente
Sfruttare wifi dei vicini o di centri commerciali a scopo di localizzazione (Loreggia, Le corti venete,
casa mia pd e vr,...)
Ribaltamento del cellulare a faccia in gi per respingere chiamata e/o togliere il volume per tot
tempo; ma anche per evitare la lettura sms in auto (occorre per introdurre ritardo di alcuni
secondi...e.g. 5)
Verticalizzazione o altra gesture per farsi leggere un SMS attivato da 15 secondi
SMS posizione: metti una gestione degli errori (se non riesce ad inviare SMS ci riprova, segnala con
la parola email che riuscito a spedire la posizione in email, ragiona come 66 anche in 6)
Posizione SMS: Guarda se sfruttando il comando Read line e caricando subito la linea x puoi fare a
46 / 52
meno di creare molte variabili intermedie
Attivazione schema casa a Verona:
o se si arriva dall'auto (con BT) inserito, baster aggiungere una riga in CheckWIfiPdVr che
reagisca come con la rete Belkin di Pd sfruttando un'altra rete WiFi Vr
o nel caso si arrivi a piedi, le cose sono pi complicate (uno status rischia di ripetere in
continuazione l'attivazione home); forse se arrivo da Aperto del lavoro posso far prima
partire un timer di 30 minuti che faccia quanto gi fa BT-off
Sistema di ritrovo parcheggio auto il pi semplice possibile (e.g. premi il singolo pulsante "P", si
apre la macchina fotografica per scattare una foto della via e quindi in automatico elabora la
posizione, magari con un indicatore che diventa verder quando ha raggiunto una buona precisione);
utilizza la potenza del segnale telefonico per capire se sei al chiuso e quindi evitare il GPS ma
predisporre la memorizzazione per colore e numero di parcheggio/foto:
o IN AUTOMATICO:
salvare posizione con rete telefonica (imprecisa, ma rapida e senza consumare
batteria) alla partenza, intanto che tramite menu l'utente decide cosa fare; conviene
un task che da solo chiede la posizione e la salva nella variabile giusta (e.g.
PARK_LOC_TEL)
salvare orario attuale
o OPZIONI MANUALI TRAMITE PULSANTI WIDGET:
PULSANTE REC POSIZIONE:
attiva WiFi e GPS, localizza e salva posizione (magari cambiando l'aspetto
dell'icona widget per dire che c' riuscito) compresa precisione
accendi anche internet 2G per salvare anche il nome della via (con reverse
geocoding)
decidere se usare lo stesso pulsante per proporre di ritornare al posto,
magari in base a quanto tempo passato dall'ultima registrazione
PULSANTE NOTE DI TESTO (colore, piano parcheggio, salvare orario in
automatico per sosta a tempo opzionale segnare la scadenza [in futuro allarmi]
FOTO DEL POSTO (considerarne se farne pi di 1)
47 / 52
INVIO DATI: tramite SMS, MMS o email con parametri di dove ci si trova
(compresa precisione)
REC MESSAGGIO VOCALE: e.g. con il n. del parcheggio o la via o indicazioni
per trovarlo
RITORNO ALLA MACCHINA:
ACCESSO DATI REGISTRATI: non so bene come gestire la foto ed i
dati: forse conviene una finestra da cui si vede la foto, leggono i dati (orari,.
nome via,...), possibilit di spedire via SMS o email ad altri, attivazione
della navigazione
NAVIGAZIONE: usare GMaps con i parametri (possibilmente pedonali)
oppure il programma di navigazione (c' l'opzione Navigate to nelle ozioni di
OpenMap di Tasker)
sarebbe carino fare tutto con 1 solo gadget: un pulsante che cambia colore
quando vi una posizione salvata
o segnala in qualche modo il livello di precisione della registrazione del posto
o AVANZATE:
in base alla cella telefonica riconosce di essere in un centro commerciale e propone
di memorizzare il parcheggio secondo gli schemi di codifica di quel centro (e.g.
colori verde, rosso, giallo,...numeri da 1 a 4...piano n....)
cancellare i dati pi vecchi di 48 ore
o
o IN PRATICA:
crea un task "normale" che contiene
il codice da eseguire sempre ad ogni attivazione (forse posso metterlo sia
prima che dopo l'istruzione seguente
la chiamata (Run task) ad un Task menu da cui si possano scegliere
eventuali
IN FUTURO
48 / 52
Un editor per desktop (in python), magari creando un modo per esprimere i programmi (ma forse sono gi
salvati in xlm) e tradurlo visivamente con immagini grafiche che simulano i menu
Created with the Personal Edition of HelpNDoc: Easy CHM and documentation editor
Miei utilizzi possibili
Idee per possibili utilizzi miei
Scopi:
massimizzare la durata della batteria senza rinunciare alle funzioni
o attivando le funzioni solo nei contesti in cui servono
o scegliendo sempre le opzioni meno "consumatrici" (e.g. 2G al posto di 3G)
automatizzare i comportamenti in base al contesto (e.g. lavoro, notte,...)
Possibilit/idee:
Idee generiche/comuni:
Metti una breve vibrazione di conferma su molti widget
Evita di far fare sbalzi di illuminazione (ctl se vi l'automatica: se si vuole cambiare, prima metti al
massimo, poi togli automatica)
trova modo di registrare alcuni parametri (e.g. illuminazione, audio,.. ) per poterli registrare e poi
rirpistinare
considera di avvisare se stai per andare in roaming
almeno sul lavoro, ribaltarlo toglie il volume
basare molti comportamenti sulla programmazione del calendario (che diverebbe il principale strumento
di programmazione), magari rinforzandosi con il riconoscimento dell'ubicazione (non tanto per VR, ma
magari per albergo e loreggia):
o disattiva wifi
o disattiva BT nel caso della VR (per le altre 2 dipende dalla posizione)
o abbassa i volumi e luminosit
Notte
o modalit aereo

al limite, filtra solo chiamate di genitori e ricky durante riposo

puoi collegarti durante la notte ogni tot (e.g. 15 minuti) e filtrare solo le telefonate/SMS
dei parenti, magari segnalandole bene (stai dormendo) e poi leggendole
o luminosit automatica
o volumi tutti a zero tutti
o no sync
o profilo notturno si attiva solo se nella cella di casa (padova e verona) in determinati orari (per
evitare che si attivi mentre sei al ristorante il sabato sera); devi pensare a qualcosa per evitare
che ti si spenga mentre stai arrivando a casa: magari attiva un attimo il GPS per escludere di
non essere in macchina (o per localizzazione pi precisa o per velocit > 5 kmh [meno
affidabile: ti puoi fermare ad un semaforo]); forse meno raffinato, ma il profilo auto faccia da
impedimento (o al limite, la presenza del BT attivo)
o se invece accetti di lasciare acceso il cell, per chiamate emergenza puoi rispondere con un
SMS che dice di scrivere un particolar eSMS che attiva tutto o fare 2 chiamate ravvicinate (c'
gi uno script nei profili ufficiali): eventualmente puoi mantenere il volume a zero a meno http://
tasker.wikidot.com/sleepmode
Auto:
49 / 52
o Disattivazione BT automatica:

se da profilo o contesto casa perde il segnale del cell, probabilmente sei in cantina ed
attiva e.g. per 10 minuti il BT

se da auto perde il segnale per almeno 1 minuto ed il contesto cella casa, sei in
garage (e non in galleria o al ristorante), quindi disattiva BT e passa a programma casa

altra possibilit: quando perde il collegamento BT, prova ogni minuto (per un n. di volte
ben definito) se il contesto diventa quello di casa PD o VR per attivare il contesto Casa
o aereo mode off
o se arriva SMSalza i volumi (gi dovrebbe farlo il profilo auto: al limite fai anche un buco su
altoparlante della custodia), fai un trillo di avvertimento, leggi il mittente e poi il testo dell'SMS;
chiss se di aiuto attivare lo speakerphone (ma forse lo fa gi ineffettei se suoni un suono)
Pausa programmata
o e.g. per Gardacqua o altri posti
Cinema:
o riconosce il contesto del cinecity (posizione, magari velocit bassa per distinguere traa viaggio
in auto e fermo a piedi...ma forse basta anche ilBT che non collegato ad auto)e si mette
automaticamente in sola vibrazione, disattivando il BT per 90 minuti; poi lo riattiva e si sblocca
se si collega a qualcosa (BT auto)
o programma di silenzio a tempo impostabile con menu
Casa PD
o sincronizzazione (calendar, contatti, meteo, market-app, GPS-fix)

se collegato alla rete elettrica, wifi on costante

se a batteria, ogni tanto (e.g. 30 minuti, ma anche 60) accende per 5 minuti il wifi per
sincronizzarsi
o utilizza solo il 2G
o aereo mode off
o tieni conto che la presenza del wifi Belkin dice sicuramente che sono a casa, ma la sua
assenza (in alcuni punti si riceve male) non mi d certezze
o migliorie: fai in modo che ripristini lo stato precedente di autosync
Corsa:
o l'inserimento della cuffietta attiva il programma per la corsa
o max luminosit,
o attiva gps, telefono 2G, no WIFi
o aereo mode off
o attiva anche il player mp3
o forse permette di aggiungere funzioni ai pulsanti dell'auricolare (gestione volume!) o almeno
definire gesture da eseguire insieme alla pressione di un pulsante del cavetto per regolare il
volume
o al disinserimento, ripassa al profilo casa
Lettura SMS e chiamate:
o Lettura dei mittenti degli SMS e delle chiamate
o Lettura testo SMS se sei in auto (decidi se creare un flag con widget per permettere la lettura
dei messaggi anche in altri contesti)
o Migliora la gestione dei chiamanti sconosciuti (%CNAME diventa ?)
SMS locator:
o invia SMS automaticamente a casa PD quando sono arrivato a Verona (devi trovare per il
modo di evitare che lo mandi ogni volta che ti trovi a casa Verona: deve distinguere il viaggio...
forse puoi usare come trigger iniziale il passaggio da Soave, magari in certi giorni, e farlo
scattare quando sei in zona casa; magari limiti specificando il giorno e.g. Luned o Domenica
o invia posizione in base ad SMS o email di richiesta posizione: riconosce la chiave, attiva gps
(ma al limite si accontenta del solo network), invia (ma notifica anche a me l'utilizzo); devi per
avere la ricezione email accesa per poter rispondere (dipende dal contratto...)
o widget pronti per rispondere che non puoi rispondere perch stai svolgendo determinate attivit
(e.g. piscina,...)
o magari riconosci se l'inviante nella tua agenda (e/o nella lista degli abilitati) ed invia anche
50 / 52
un'email o metti nella risposta SMS un link per gmaps o magari una versione molto abbreviata
o dubbio se nella risposta mettere anche la velocit cui vai
o miglioramenti: ora accendi il gps e poi lo spegni; sarebbe meglio registrare la condizione in cui
si trova, accenderlo se necessario ed eventualente ripristinarlo alla fine
o PROBLEMI:

il mio cell aggiunge la firma Simone e non so come si comporti lo string matching per
gli SMS

il cell pone il dubbio di quale programma adoperare per spedire l'SMS


Browser/GMaps/... (partenza di ...)
o se non c' WiFi attivo, attiva 3G preferenziale: anzi, fai una utility che se chiamata,
verifica di essere a pd, e casomai attiva il wifi belkin
o GPS on
o registra luminosit attuale (stato auto-bright e luminosit)
o metti al max la luminosit
o ritorna a 2G e stacca GPS all'uscita
o ripristina illuminazione iniziale
Energia
o Pensa al risparmio in caso non si sia in zona dove non si riceve (ristorante, attraversata,...): fare
in modo che provi a collegarsi solo saltuariamente (e.g. ogni 3 minuti...sempre che ci non
costi energia); magari lo fa solo se batteria <50%
Widget
o Notifica tua posizione attuale via SMS/EMail (puoi usare lo stesso sistema della spedizione in
automatico con richiesta SMS/Email)
Batteria
o scarica (<33): luminosit al 20%, stacca GPS, WiFi, va in 2G
o molto scarica (<15): modalit aereo per 5 minuti, si riattacca per 3 e cos via, luminosit al
minimo,no gps, no wifi, no sync
Chiamata:
o inclina il telefono a sn (o altra gesture) per rispondere
o se alcuni chiamanti urlatori, abbassa il volume
Calendario
o Sveglia di controllo nei giorni lavorativi (meglio: ctl che vi sia static e/o essere a Verona
o Lettura ad alta voce a comando degli impegni odierni
Foto:
o attiva GPS per tagging all'apertura macchina fotografica
o luminosit max display
Supermercati:
o riconosci da contesto/luogo, magari BT che non riceve pi auto
o fai partire programma di elenco spesa all'arrivo
o chiudi programma all'uscita dal contesto (e.g. ripresa contatto con BT auto)
Possibili idee:
segnalatori di chiamate e messaggi persi
scrollare fa cambiare lingua alla tastiera (o altra gesture)
sync wifi quando si collega alla corrente a PD
Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator
51 / 52
Esempi d'uso
Esempio di contesti multipli ed azioni multiple in un unico profilo:
Quando (1) si in ufficio AND (2) sono le ore tra le 8 e le 17 --> [1] disabilita suoneria AND [2] attiva la
vibrazione
Impatto sulla batteria:
Ricordati di specificare sempre limitazioni al controllo e.g. della posizione GPS che mangia batteria (e.g.
solo in certe ore).
Se metti pi opzioni, Tasker verificher per prima quella meno pesante per la batteria
Possibili utilizzi:
far partire il GPS quando parte il programma di navigazione e disattivarlo quando viene chiuso
far partire un menu di programmi quando si inseriscono le cuffiette
abbassare la suoneria quando si al lavoro
alzare il volume della suoneria quando si tratta di amici ed abbassarlo quando il boss
aprire la lista della spesa quando si parcheggia nel supermarket
accendere il BT quando si entra in macchina
aiuta a ritrovare la macchina parcheggiata
legge i messaggi ricevuti
silenziare il telefonino quando viene messo a faccia in gi
sincronizzare il cell solo ogni tanto (per risparmiare batteria)
accendere il wifi ogni tanto in ambito casalingo per sincronizzare il cell
gestures di movimento del telefono (capovolgerlo per tornare alla home page)
registrare conversazioni su SD
Risponde automaticamente ad SMS ricevuti in auto
alla ricezione di un SMS (contesto)
(seguono azioni)
ctl se vi sia un WiFi vicino (per evitare di accedere al GPS se si a casa o in ufficio)
se il GPS non abilitato, ll abilita e ricava la posizione corrente
risponde all'SMS solo se la velocit > 5 miglia
Upon receiving a text the phone will check if it is near WiFi, this prevents the phone from doing grabbing
GPS Locations if you are sitting at home/office, the task checks to see if your GPS is enabled (if not, it will
enable it) then grabs your current location. It will only respond to the text if your speed is faster than 5 mph.
There is an additional task to convert the %LOCSPD from m/s to MPH and sets variable %LOCSPDMPH.
Schemi di esempio
Per l'accensione automatica del wifi a casa (tratto da un sito)
L'individuazione di casa tramite gps sarebbe stata un massacro per la batteria, quindi l'ho evitata, optando
per la localizzazione (seppur non puntualmente precisa) tramite cella telefonica, decisamente meno
dispendiosa come batteria.
Ovvio per che la cella telefonica pu essere molto ampia, quindi accendere indistantamente in wifi solo in
base ad essa sarebbe stato sempre uno spreco... quindi la presenza della cella telefonica mi abilita un
ulteriore profilo che si mette periodicamente a controllare la presenza della mia rete di casa, e accende
definitivamente il wifi solo quando la trova.
In aggiunta a questo, un ulteriore controllo sull'eventuale attivazione della modalit aereo per evitare inutili
52 / 52
ricerche di cella telefonica quando il modulo telefonico staccato (anche perch, se ricordo bene, a modulo
telefonico spento la ricerca di cella telefonica di tasker ritorna sempre true, e decisamente non mi andava
bene)

Vous aimerez peut-être aussi