A következő címkéjű bejegyzések mutatása: Tasker. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: Tasker. Összes bejegyzés megjelenítése

2015. március 17., kedd

AutoScroll

AutoScroll funkció olvasáshoz, vagy a hírek, adatfolyam átnézéséhez (mondjuk bütykölés, kávéfőzés, akármi közben)
A project-ben alkalmazásokhoz kötöttem, de szabad bármit :)
Induláskor felveszi a kijelző méreteit, lehet állítani a szélső/belső pontokat, sebességet, stb

Update
v2.0
Hide scene esetén ugyan az első változatban nem látszott a teljes kezelőfelület, de attól még ott volt, ettől a mögötte lévő felületet nem lehetett kezelni.
- a görgetést kihelyeztem egy külső task-ba, így paraméterekkel lehet vezérelni, illetve le lehetállítani bárhonnan
- átdolgozásra kerültek a vezérlők, gyorsabb futás, kisebb akadással
- különválasztottam a vezérlőfelületet és a megjelenítő funkciót
- egyszerűbb init animáció
- megszűntetésre került a %scroll változó
- egyéb apróságok a fentiek miatt

Letöltés:
AutoScroll v2.0

- kisebb hiba, hogy a Scroll task teljesen átveszi a vezérlést, ezért a kezelőfelület újbóli megjelenítése némi késleltetést szenved el (dolgozom rajta)


#Tesztelésre!! Első nyers változat
#Automatikus görgetés le, fel, lassan, gyorsan
#Mert a Tasker lustáknak való :)
#AutoScroll v1.0 - nyers

2014. július 26., szombat

Kitti - titkárnő alapprogram

Az elgondolás egy saját fejlesztésű MI. Jó lenne majd egyszer eljutni egy Jarvis - szintű mesterséges intelligenciáig, de van néhány szűk keresztmetszet, ezért megelégszem a tasker és az autovoice funkció - gazdagságával :)
Már egy ideje bütykölöm, jó pár funkciót újra írtam és úgy néz ki, hogy az alapprogram elkészült.
Három task az alap:
-AV kapcsoló modul
-Felolvasó modul
-Szinonima kezelő modul

Az AV kapcsoló indítja és leállítja az autovoice folyamatos funkcióját, bekapcsolja a mobilnetet (nálam Mtk eszközön keresztül, ezt le kell cserélni), beállít néhány változót későbbi felhasználásra és hangjelzést ad (nálam ez egy kicsit bug-os, de többnyire működik). A task-ot a kezdőképernyő hosszú érintésével indítom és állítom le.

A felolvasó modul felfüggeszti a hang felismerést a felolvasás idejére, többféle kimenetre tud felolvasni, felolvassa az átadott paramétert, majd vissza kapcsolja a hang felismerést. Ha nem volt aktív az av, akkor nem kapcsolja vissza.

A szinonima modul már trükkösebb. Arra terveztem, hogy többféle választ tudjon visszaadni, így fokozva a felhasználói élményt.
Működése alapján a kapott kifejezés alapján keres a kapott fájlban és random értéket ad vissza a keresett érték alapján.
Több fájl is használható, így több típusú válasz funkciót lehet produkálni.

https://docs.google.com/viewer?a=v&pid=explorer&srcid=0B5TLPRmznWzuNGhMcFA3Q05xRGc

Ezekre a modulokra épül az egész project. Innentől mindenkinek a fantáziájára van bízva, hogy mire használja. A későbbiekben egyéb funkciókat is tervezek megosztani.
Ötleteket szívesen fogadok :)

2014. április 17., csütörtök

Sms törlése, olvasottá tétele tasker-rel

Ahhoz képest, hogy milyen régóta akartam már ezt a task-ot elkészíteni, de csak mostanra sikerült - mégis azt kell mondjam, hogy ez sem annyira nehéz:) Sőt...
Na de nézzük mit is akarunk. Sms-t szeretnék törölni, olvasottá tenni, stb. Természetesen beavatkozás nélkül.
Hogy ki mire használja, ha használja, annak csak a képzelet szab határt. Én pl a reggeli otp-jelentést kezelem vele.
Na nézzük mi kell hozzá:
-tasker, vagy egyéb scripter app
-root jogosultság
-sqlite3 bináris
-script
Szükséges tudni az sms tárolására használatos adatbázis-fájl elérési útját. Ez a legtöbb android rendszerben a következő:
/data/data/com.android.providers.telephony/databases/mmssms.db

A legtöbb rom esetén nincs telepítve az sqlite3 bináris, így ezt magunknak kell megtenni. Ha van, akkor ezt a részt ugord át.
ICS(-): https://db.tt/g5vdwQyd
JB+: https://db.tt/noWgKDJJ
(forrás)
Letöltés után másoljuk be a /system/xbin vagy ezzel egyenértékű mappába a többi bináris közé 'sqlite3' néven.

Megvan minden szükséges kellék úgyhogy jöhet a task.

Hozzunk létre sima szöveges fájl-t:
[del_otp.sql]
delete from sms where address='+36209400700';
Vagy:
[read_otp.sql]
update sms set read='1' where address='+36209400700';

Hozzunk létre egy üres task-ot, és adjunk neki egy run shell műveletet. A parancs:
sqlite3 /data/data/com.android.providers.telephony/databases/mmssms.db < /teljes/eleresi/ut/read_otp.sql
Root jog kell, úgyhogy pipa.
Használata:  ízlés szerint.

Természetesen egyéb sqlite adatbázisokhoz is használható.
Ha vannak ötletek, azt szívesen fogadom :)

2014. február 25., kedd

Otp direkt bejelentkezés felolvasó

Nem egy bonyolult, úgyhogy nem vesztegetek rá sok szót. Ha az OtpDirekt küldi a bejelentkező sms-t, akkor felolvassa az ellenőrző számsort. Media csatornán keresztül teszi, ha 2-nél alacsonyabb ez a hangerő, akkor 2-re emeli, felolvassa, majd visszaállítja a hangerőt.

2013. november 30., szombat

Bluetooth kikapcsolás Tasker-rel

Elég egyszerü.
Net -> bluetooth state [off]
Feltétel:
Bluetooth connected [ not any]

Eddig :) kicsit hatékonyabban:
Két profillal csinálom. Az egyik a bluetooth bekapcsolt állapotát figyeli és bekapcsoláskor aktivizálja a másik profilt, saját magát pedig kikapcsolja. A másik profil 2 perces idõközzel ellenõrzi, hogy kapcsolódva vagyunk-e eszközhöz, majd kikapcsolja magát és aktiválja az elsõ profilt.

https://dl-web.dropbox.com/get/Public/Tasker/profiles/CheckBluetoothTurnedOn.prf.xml?w=AADlxuK0w1CUPM5qQWzoV-92_A0o5CTHdo8sxUGhxl9xBA

https://dl-web.dropbox.com/get/Public/Tasker/profiles/BluetoothDeactivate.prf.xml?w=AAB-qFKMe4UKjg10kQ2ZJZfrQ64hlzV7Sjz8ylxMmyZymg

2013. július 8., hétfő

Azonosítást igénylő nyílt Wi-Fi-bejelentkezés, Taskerrel automatikusan

Egy egyszerű HTTP POST lesz a megoldás. Sok minden más nem fog kelleni hozzá. A cél, hogy kérjük meg a Wi-Fi hálózatot, hogy beengedjen.

A működés elég egyszerű. Csatlakozol az X hotspot-ra és lekéred mondjuk a google.hu-t. X hotspot a google.hu helyett betölti a saját autentikációs oldalát (legyen local.hu), ha még nem vagy azonosítva. Valószínűleg van benne egy csomó szöveg, egy form rejtett elemekkel és egy submit gomb. A rejtett elemek valamelyike tartalmaz egy egyedi azonosítót. Na ezt kell kikeresni.
Első körben töltsük le, vagy nézzük meg local.hu forráskódját.
Valami ilyesmit keresünk benne:
<form action="/" method="post">
<input type="hidden" name="4Tredir" value="/">
<input type="hidden" name="magic" value="213546487974989834156">
<input type="hidden" name="answer" value="0">
<input type="submit" value="OK" onclick="sb(1)">
</form>
Ez a Tesco authentikációs form-ja. A neheze már meg is van.
Annyit észrevenni rajta, hogy nem közvetlen a submit küld, hanem meghív egy script-et, ami átírja az answer értéket és utána küld (nagy biztonsági elem, mondhatom:)
Tehát a Task:

http get: akármi.com -> output file: file.txt, type: text/*
read file: file.txt -> %file
variable split: %file, name="magic" value="
variable split: %file2, ">
http post: akarmi.com -> data: 4Tredir=/ magic=%file21 answer=1
Ez az egyszerű felépítés. Ki lehet egészíteni azonosítással, felugró üzenetekkel, hello kitty-s notification-nel, egyebekkel.

példa

Üdv

2013. július 2., kedd

Tasker+Időkép

Aki ismeri az Időkép-et, annak nem nagyon kell bemutatni. Talán ez a legjobb hazai időjárási oldal. Jó a felület, percre kész, lokalizált és legfőként pontos. Elérhető android-ra app formájában.
Na igen. Mindenre van egy app. Akinek csak előrejelzés kell és soha nincs szüksége percről-percre adatokra, vagy vízhő, hójelentés, stb-re annak való ez a task.
Könnyebb lenne rss-feedből, de sajnos az Időkép megszűntette eme igen hasznos funkcióját a sorozatos visszaélések miatt.

És akkor jöjjön, ami eddig még nem volt:
Időkép notification weather task

Két dolog kell hozzá:
valamiféle adatok, amit feldolgozhatunk
valamiféle net-kapcsolat szükséges lesz hozzá

Hozzunk létre egy új task-ot (az egyszerűség kedvéért "Idokep" néven).
+ Net -> HTTP Get (ezzel egy html oldalt töltünk le txt formátumba)
     Server:Port: m.idokep.hu
     Path: ?varos=Pecs (ha nem csalingálsz sokat. Ha igen, akkor lentebb lesz pár alternatíva) A város nevének formátuma: ékezetek nélküli, nagy kezdőbetűvel.
     Mime type: text/*
     Output file: (tetszőleges fájl, én csináltam az ilyeneknek egy temp mappát a Tasker mappájában) Tasker/temp/idokep.txt

+ File -> read file (beolvassuk a letöltött fájl-t)
     File: Tasker/temp/idokep.txt
     To var: %idokep (lokális változó)

Innentől már nincs is nehéz dolgunk. Ha megfelel a mobil netes nézet, akkor kitehetjük egy HTML-popup-ba és kész is vagyunk :)

Ha fel akarjuk dolgozni, akkor az %idokep változót kell szétdarabolni. Erre van egy nagyon jó függvény:
+ Variables -> variable split
     Name: %idokep
     Splitter: (alapesetben talán szóköz, de bármivel vághatsz) </table>
Nekünk most ez kell, mert a visszakapott txt-ben az adatok táblázatokban vannak. A variable split sorszámozott tömb-be darabolja az eredeti változót.
Ha van kéznél asztali gép, vagy szövegszerkesztő, ami jól keres, akkor könnyebb a dolog. Én gedit-et használok ezekre és nagyon gyorsan ki lehet keresni a tördeléseket.
A 4. táblázat tárolja a napi adatokat. Most ez kell, tehát levágjuk ennek az elejét is, így marad csak a táblázat:
+ Variables -> variable split
     Name: %idokep4
     Splitter: <table

Kikeressük a várost a fentebb taglalt elvet követve (strong /strong közé írták)
Variable split %idokep42, </strong>
Variable split %idokep421, <strong>

Ezzel megvan a város neve
+ Variables -> Array push
     Name: %idokepNapi
     Position: 1
     Value: %idokep4212

A következő a szöveges időjárásjelzés (</td> és <br/> között)
Variable split %idokep422, </td>
Variable split %idokep4221, <br/>
Itt még van egy teendő, mert ebben a sorban tabulátorokat is eldugtak
+ Variables -> variable search replace
     Name: %idokep 42213
     Search: /t
     Replace: yes
Array push %idokepNapi, 2, %idokep42213

Napi hőmérséklet (Ez is strong közé van írva és azzal már felaprítottuk, úgyhogy egy vágás maradt)
variable split %idokep422, <strong>
Array push %idokepNapi, 3, %idokep4222

Kiírjuk valahová. Én értesítésnek teszem ki, így meg tudom nézni bármikor

+ Alert -> Notification
     Title: Időkép - %idokepNapi1
     Text: %idokepNapi3, %idokepNapi2
     Icon, number, permanent: opcionális

És egy stop a végére.
Task -> stop

Task letöltése

Köszönet az Időképnek





2013. június 24., hétfő

Tasker Init

Előfordulhat olyan, hogy szükség van bizonyos dolgokat babrálni a Tasker indításakor. Van erre való funkció, de nem túl bőbeszédű a net ezen a téren.


Feltétel:
event - tasker - monitor start

'Monitor Start

Tasker's Monitor Service has just started.

Tasks triggered from this action are guaranteed to be submitted for execution before any other and are therefore a good place to perform preparatory actions like setting the initial values for variables.

If it's necessary to ensure that resulting tasks finish before any other task starts, set the Task Priority in the profile properties to the highest level.'

Azt mondja, hogy minden előtt ez fut le a Tasker indításakor, és még azt, hogy ajánlott a legmagasabbra állítani a prioritását.

Én a változóimat nullázom vele. Talán azért hasznos, mert néha kifagy a progi, vagy a teló és ilyenkor a tárolt értékeket nem jól kezelik a taskok.

2013. június 23., vasárnap

Tasker profiljaim (otthoni, éjszakai, munkahelyi, normál)

Középhaladó szint

Az alapelgondolás adott volt: lusta vagyok, állítgassa a profilokat a telefon. Azért van, hogy helyettem dolgozzon.
Eddig erre a célra jó volt a Locale. Azonban a Tasker többet hoz ki a telefonból, úgyhogy lecseréltem. Lett miatta egy kis játék :)

Szempontok:
legyen négy profil
 -Normál
 -Otthoni (fél éves a kislányom, ne ébressze fel senki)
 -Otthoni éjszakai (éjszaka engem se ébresszen fel senki)
 -Munkahelyi (ébresszen fel valaki)

Adottak a következők
 -Otthoni wifi
 -Munkahelyi wifi

Normál esetben elég lenne csak közeli wifi-t beállítani a feltételnek:
wifi near[otthoni] + time[7:00-19:59] -> task[HOME] /kilépő -> task[NORMAL]
wifi near[otthoni] + time[20:00-6:59] -> task[NIGHT] /kilépő ->task[NORMAL]
wifi near[munkahelyi] -> task[WORK] /kilépő ->task[NORMAL]

Ez nekem két szempontból nem felelt meg
 -a wifi jel néhol gyenge, így otthon elindul a normál profil és felébred a lányom, nyűgös lesz, aztán én is.
 -párhozamosan futnak task-ok, ami nem olyan jó a memóriának, akksinak, notibar nem átlátható, stb.

Ezt a tervet szőttem:
Változókat állítgatok pozíciótól függően és ezek állapota fogja meghatározni a profilt.
Például az otthoni wifi és cella is tesz 1-1 -et a %Home változóba. Ha megszűnik létezni a wifi-jel, vagy cella-jel, akkor elvesz 1-1 -et.

 cell near[otthon] + time[7:00-19:59] -> task[_setHome] / task[_unsetHome]
 wifi near[otthon] + time[7:00-19:59] -> task[_setHome] / task[_unsetHome]
 cell near[otthon] + time[20:00-6:59] -> task[_setNight] / task[_unsetNight]
 wifi near[otthon] + time[20:00-6:59] -> task[_setNight] / task[_unsetNight]
 cell near[munkahely] -> task[_setWork] / task[_unsetWork]
 wifi near[munkahely] -> task[_setWork] / task[_unsetWork]

_setHome
variable add[%Home, 1]
variable set[%Night, 0]
variable set[%Work, 0]
perform task[setProfile]

_unsetHome
variable subtract[%Home, 1]
perform task[setProfile]

A _setHome és _unsetHome mintájára kell elképzelni a _setWork, _unsetWork, _setNight és _unsetNight task-okat.

setProfile
if[%Home > 0]
 perform task[HOME]
else if[%Night > 0]
 perform task[NIGHT]
else if[%Work > 0]
 perform task[WORK]
else
 perform task[NORMAL]
end if

A HOME, NIGHT, WORK és NORMAL értelemszerűen az adott profil beállításait tartalmazza. Vagy valami egész mást.

Még egy dolog van. Priorizálni kéne ezt a sok mindent, hogy értelme is legyen annak, amit csináltunk.
 Feltételek: ami cella, az eggyel magasabb, mint ami wifi (legalábbis nekem így lett jó). Ez nálam 9 és 8. A magasabb hajtódik végre először.
 Ahol perform task van, elméletileg ott is kellene állítani, de nekem eddig nem volt gond miatta. Alapértelmezett az 5. Ha a perform task[valami] prioritása magasabb, mint a hívó task-é, akkor előbbi lefut és csak utána folytatódik a szülő.

A fentiek alapján igazán nem nehéz megcsinálni, de azért itt a lehetőség letölteni zipben: Google drive-ból, vagy Dropbox-ból

Jó szórakozást