Sei sulla pagina 1di 52

Tasker Android

1 / 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

2 / 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.

3 / 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)

4 / 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) ) ed al termine (freccia Quella destra indica i task specifici da eseguire all'inizio (freccia verde rossa ) dell'esecuzione.

Nello specifico, per tutti e 3 viene fatta la stessa cosa, cio attivare il GPS all'inizio (con il task GPS AutoLaunch) 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

5 / 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:

6 / 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,

7 / 52

Wifi Near 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

o Eventi: sono una 50ina, suddivisi in categorie; alcuni dispongono di parametri aggiuntivi (e.g.

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

8 / 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-turnyour-android-phone-into-a-fully+automated-superphone Thread lungo su forum: http://www.droidforums.net/forum/droid-applications/66195-what-have-you-donetasker.html Created with the Personal Edition of HelpNDoc: Easily create CHM Help documents

9 / 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

10 / 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 Il pulsante

serve ad aggiungere un nuovo comando in fondo al programma. permette di specificare alcune propriet del task:

o come comportarsi nel caso un task venga eseguito mentre gi in esecuzione uno identico (si o
pu scegliere di farli funzionare entrambi oppure di far sopravvivere quello gi in esecuzione oppure la nuova istanza) 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

11 / 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

12 / 52

Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents

13 / 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"

14 / 52

Stop No No No No Yes Yes Yes

Priority A 5 5 5 5 5 5 5

Priority B 0 5 6 10 10 5 0

Resulting say A ended, B Started, B ended A ended, B Started, B ended A ended, B Started, B ended B started, A ended, B ended B started, B ended (no A ended: script stop [disappear "Kill App"] B started, B ended (no A ended: script stop [disappear "Kill App"] 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

15 / 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

16 / 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 Stato: vicinanza a celle telefoniche [State] Posizione: rete internet [Location][Net] Stato: vicinanza a WiFi Posizione: GPS * ** Consumo energetico * ** */***** ***** ***** S S S S S Precisione Necessita di internet [net] Necessita del WiFi

Posizione: rete internet & Wifi *** **** *****

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.

17 / 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

18 / 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)

19 / 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

20 / 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

21 / 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

22 / 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-CommandReference 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

23 / 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. "

24 / 52

Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator

25 / 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 autobrightness 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

26 / 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

27 / 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);

28 / 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

29 / 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

30 / 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 is http://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

31 / 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. can remove action 19 (Popup). For actual use you

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

32 / 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 an SMS message is sent without a name attached to it. I have a context that reads SMS messages 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 SMS is 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 the SMS message IF the SMS message 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?

33 / 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

34 / 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 uppercase 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 *!

35 / 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

36 / 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.

37 / 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

38 / 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

39 / 52

o o o o o o o o o o

programma, non eseguo il resto) Var CEINTERNET = 1 (indico che avvio l'accesso ad Internet) Vibrate 100 (per far capire che lo script partito) Stop if %WIFII match *CONNECTION* (cio fermo lo script se gi connesso al WiFi) Attivo il WiFi (se Off) Airplane off (se on) GPS on (se off) Mobile data 3G preferred (se esiste, utilizzo la rete pi veloce) Mobile data on (attivo lo scambio dati: user WiFi o Modem a seconda delle disponibilit) Auto-luminosit on 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

40 / 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: Coordinate dell'ultimo GPS fix %LOC Ora dell'ultimo GPS fix valido %LOCTMS %LOCN Coordinate dell'ultimo network localization fix Ora in cui avvenuto l'ultimo network localization %LOCNTMS Ora precedente l'inizio del tentativo di localizzazione (per %ORAPRIMA valutare se sar riuscito un fix pi recente) Stringhe utilizzabili come risultato: Esiste se il fix riuscito %FIXOK %LOCREADABLE Stringa con l'indirizzo in formato testo umano Var in cui finiscono le coordinate "vincenti" da usare come %LOCLATLON risultato Fonte adoperata per la localizzazione effettuata ("gps" o %FIXSOURCE "net") Accuratezza della localizzazione effettuata %FIXACC Epoca (espressa in tempo assoluto in secondi) in cui %FIXTIME avvenuto il fix della localizzazione attuale A quanti secondi fa risale il fix (Tempo attuale in secondi - % %FIXAGE 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, o o
magari con SMS diversi; se esiste, fa accendere il GPS ed allungare il timeout di tentativo localizzazione] [SALVO LE IMPOSTAZIONI DELLE RETI E GPS] %SNSEND off

41 / 52

o 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)

Task: SaveNetSettings (salvo le impostazioni attuali delle reti gps, cell,... per poi ripristinarle alla fine) Wait until %SNSEND on [attendo che effettivamente abbia finito]

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 (% o
LOCN (var. dinamica) : latitudine e longitudine dell'ultimo network location fix) 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 % o

HAVEDATA esister solo se vi accesso alla rete; serve alta priorit] 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 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

42 / 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 b ene se quello del network o
pi recente di quando ho iniziato il ctl (insomma, riuscito!) %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 b ene

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


risultato %LOC %LOCTMS %LOCN %LOCNTMS

Var in cui finiscono le coordinate "vincenti" da usare come Coordinate dell'ultimo GPS fix Ora dell'ultimo GPS fix valido Coordinate dell'ultimo network localization fix 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)

43 / 52

Created with the Personal Edition of HelpNDoc: Full featured Help generator

44 / 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

45 / 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)

46 / 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....) 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 cancellare i dati pi vecchi di 48 ore

IN FUTURO

47 / 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 o o o o

dei parenti, magari segnalandole bene (stai dormendo) e poi leggendole luminosit automatica volumi tutti a zero tutti no sync 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) 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:

48 / 52

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

o Disattivazione BT automatica: se da profilo o contesto casa perde il segnale del cell, probabilmente sei in cantina ed

49 / 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

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)

o PROBLEMI: il mio cell aggiunge la firma Simone e non so come si comporti lo string matching per

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

50 / 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. Created with the Personal Edition of HelpNDoc: Full featured Documentation generator

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

51 / 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) Created with the Personal Edition of HelpNDoc: Free HTML Help documentation generator

52 / 52