Académique Documents
Professionnel Documents
Culture Documents
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:
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
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
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
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:
Va eseguita sempre come Task separato e con priorit altissima (senn come
subroutine a bassa priorit non verrebbe eseguita prima del resto del codice)
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)
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
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:
%FIXSOURCE=gps
%FIXTIME = %LOCTMS
%FIXAGE = %TIMES - %LOCTMS Vecchiaia del fixing (in secondi) del GPS
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 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