Hirdetés
- Samsung Galaxy A54 - türelemjáték
- iPhone topik
- Apple iPhone 13 mini - miért nem veszik elegen?
- Milyen okostelefont vegyek?
- A piac legerősebb kameráját ígéri a Xiaomi 17 Ultra
- CES 2026: 4. generációs szemkímélő kijelzővel debütált a TCL NXTPaper 70 Pro
- QWERTY billentyűzetes, üzenet-fókuszú androidos mobil a Clicks Communicator
- Samsung Galaxy S21 FE 5G - utóirat
- Snapdragon 8 Gen 5-tel jön a Realme Neo8
- Google Pixel 9 Pro XL - hét szűk esztendő
Új hozzászólás Aktív témák
-
Mr Dini
addikt
Ha shortként definiálták a kódban, akkor 2 sec, ha longként, akkor 3,5 sec, 5 sec semmiképp sem lehet, de ez most nem is lényeges...
Nem célom felesleges vitát szítani (csak a maximalizmusom hajt
), de ebben most tévedsz. Looperrel pl. meg lehet adni a kódban, hogy mennyi ideig látszódjon a Toast. S ha a Taskerben nem bugolna a Looper (nem akadna be az egész), akkor még működne is... De Java applikációban simán tudsz 5 mp-es Toastot is csinálni. 
-
Mr Dini
addikt
Szia!
Valahogy átugrottam ezt a hozzászólásod, s csak most, keresés közben akadtam rá...
Amennyiben feltételezzük, hogy space minden esetben van bárhol két időegység közt, akkor én a következő módon oldanám meg például:
data = '5hours 34minutes 17seconds';
data.toString();
finalData = data.replace(/[^0-9| ]/g,'').split(' ');
for(i = 0; i <= finalData.length-1; i++) {
setLocal('szam'+(i+1).toString(), finalData[i]);
}
alert(local('szam2'));A data változó lehet akár Tasker beépített is, ez esetben a global függvénnyel kell betölteni azt.
Ez a pársoros kód egyébként csak annyit tesz, hogy lecseréli az összes karaktert, ami nem space, vagy szám. Ekkor a példában szereplő változóból valami ilyesmi lesz: 5 34 17
Majd itt a spaceknél feldaraboljuk egy tömbbé az így kapott értéket, s végül egy for ciklussal belementünk minden elemet egy szamx lokális Tasker változóba (ahol az x helyén egy egytől az elemek darabszámáig terjedő számot kell elképzelni).
Az alert meg csak szemléltetés a végén.
Have fun!

-
Mr Dini
addikt
válasz
#79335424
#5937
üzenetére
Igen. Kivéve ha már van rá alapértelmezett program (értsd. először kiválasztok egy adott formátumhoz egy programot, s nincs csak egyszer gomb, hanem megjegyzi a h.lye Samsungja)...
Egyébként ahhoz a robot manifestjében is meg kéne adni, hogy az XML formátumhoz legyen hozzárendelve, illetve a Robot kódjának is tudnia kell kezelni ezt a fajta meghívást.
2. A robot main release-be bekerült már a JavaScript/Java függvények használatára való lehetőség? (Utóbbiról még nem is tárgyaltam Tamással, a JS fontosabb, csak érdeklődés).
-
Mr Dini
addikt
válasz
aprokaroka87
#5935
üzenetére
Bár én is ezt mondhatnám!

Ettől függetlenül feltettem ide is a taskot. Tudom, hogy nem szereted annyira ezt a megoldást, de hosszan megérintve az 'ide' szót, majd a 'Hivatkozás mentése' gombot (vagy hasonlót) megérintve menni fog a letöltés.
Vagy társítsd Taskerrel a linket egyből! -
Mr Dini
addikt
válasz
aprokaroka87
#5933
üzenetére
Szia!
Igen. Úgy látszik ápdéjt van... Feltegyem máshova is, vagy kivárod?
-
Mr Dini
addikt
Örülök, hogy működik!

Egyébként ez nem Javascript, hanem Java alapú, s nem csinálok mást, mint amit kb. az AutoNotify is csinálhat, csak így gyorsabb, mivel a Taskernek nem kell meghívnia egy külön programot, majd visszakapnia az eredményt. Illetve ez rövidebb.
Ha megvan az elképzelésed, hogy mit szeretnél alkotni, akkor a Droid wiki oldalán lehet keresgélni. Általában én is ott szoktam nézelődni a dolgok után, mivel szépen le van írva minden. Az alapján pedig gyerekjáték összehozni egy Notify-t pl.
Illetve ha szeretnél módosítani benne ezt-azt, netalántán kiterjeszthetővé szeretnéd tenni egyedi szöveggel, vagy épp dinamikus ikont szeretnél neki stb., akkor kérdezz nyugodtan!
-
Mr Dini
addikt
Szia!
Gyorsan összedobtam Neked ezt. Natív Java kódokon keresztül érem el vele a Notify managert, szóval Nálad is működnie kell. Viszont ez csak a Notify-t tartalmazó task, ahhoz hogy történjen valami érintésre, csinálnod kell egy profilt (Event->System->Intent Received, majd itt add meg neki a hu.blah.whatever-t), és rendelned kell hozzá egy taskot.

[+] Screenshot az értesítésrőlHasználd egészséggel!
Üdv!
PS: Bocs a sok vesszőért, ma nem valami választékos napom van...
Szerk.: A Taskernek aktívnak kell lennie ahhoz, hogy a profilok működjenek!
-
Mr Dini
addikt
válasz
slice14
#5913
üzenetére
Ha máshogy nem megy, Java függvények segítségével natívan az Android API-n keresztül is le tudod kérni a hangerő aktuális értékét. Viszont ez ugye nem fog folyamatosan változni, szóval pl. időhöz (mondjuk percenként) le kell futtatnod a taskot, majd mondjuk lemented változóba az értéket.
-
Mr Dini
addikt
Sziasztok!
Ha már így szóba került a kiterjesztésspecifikus áthelyezés, kérdezném, hogy nem tudtok valami elválasztóról, vagy esetleg arról, hogy pl regexet lehet-e használni? Konkrétan az a problémám, hogy nem sikerült rájönnöm, hogy egyszerre több kiterjesztést hogyan tudok figyelembe venni ezzel a megoldással.
Jelenleg úgy oldottam meg, hogy Javascriptben listázom a mappát, ami a listFiles függvényre szerencsére stringben adja vissza az összes fájt, egymástól sortöréssel elválasztva. Ezt feldarabolom a sortöréseknél, majd egyesével végigmegyek az így keletkezett tömb elemein, s ha pl. .jpg, .JPG, .PNG vagy .png a kiterjesztése, akkor máris mozgatom át a megadott mappába.
Hasonló logikával Taskerben közvetlenül is meg lehetne oldani a dolgot, ha külön csinálnék egy listFiles-t minden kérdéses kiterjesztésre, ezeknek a kimeneteit külön-külön tömbbe menteném, majd a végén egy appenddel összefűzném az egészet egybe, de ez nem valami elegáns megoldás, pláne, hogy rengeteg felesleges tömböm keletkezik, ami erősen zabálja a memóriát...
Ezért lenne jó, ha pl. reguláris kifejezést is meg lehetne adni, de arra nem sikerült rájönnöm, hogy működik-e.
Köszi!

PS: @aprokaroka87 a tömb első elemét pl. már gond nélkül tudod flashelni (ha egyáltalán van a tömbödnek első eleme, a %files(1) kiiratásával.

-
Mr Dini
addikt
válasz
aprokaroka87
#5879
üzenetére
Természetesen az csak egy példa volt, hogy én hogyan oldanám meg a dolgot, nem akartam erőltetni, hogy azt is használd in-production környezetben.

Egyébként pofás lett a végeredmény!

PS: Javaslom, hogy a TextBox Input Type mezőjét tedd át 'Normal Text'-ről 'Numeric / Integer'-re, így csak számokat enged majd beírni a mező, illetve a billentyűzetről is eltűnnek a felesleges karakterek kézi bevitel esetén!
-
Mr Dini
addikt
válasz
aprokaroka87
#5877
üzenetére
Amennyiben taskot exportálsz, a Scene-k nem kerülnek megosztásra, így azt nem tudtam átnézni.
Viszont a leírásod alapján összedobtam egy példát: [link]
A lényege, hogy amennyiben beírsz a szövegdobozba egy számsort (a millisecundum-ot), akkor a gomb megnyomása után felugrik egy alert az átkonvertált adatokkal.
Fontos megjegyeznem, hogy csak akkor fog működni a dolog, ha a Tasker engedélyezve van!
-
Mr Dini
addikt
válasz
aprokaroka87
#5875
üzenetére
Igen. Bár nem megfordítom, hanem összerakom darabokból a dátumot (az időt nem, azt kiparsolom).
Illetve a JS a 2014 április elsejét úgy adja vissza, hogy 4-1-2014, azaz így csak egy digit, Neked pedig nem arra volt szükséged. Igazából ez az átalakítás a legnagyobb dolog a kódban.
-
Mr Dini
addikt
válasz
aprokaroka87
#5873
üzenetére
Kicsit módosítottam az előző kódom és ez lett belőle. A kód:
millisec = "1477063007124"
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('c 6=["\\e\\8\\7\\l\\f\\7\\8","\\e\\8\\7\\m\\n\\o\\7\\h","\\e\\8\\7\\p\\q\\i\\i\\r\\8\\f\\s","\\t","\\u","\\v\\f\\7\\w\\h"];g=x(g),9=y z(g);c a=9[6[0]](),b=9[6[1]]()+1,j=9[6[2]]();a<k&&(a=6[3]+a),b<k&&(b=6[3]+b),A=j+6[4]+b+6[4]+a;c B=9.C()[6[5]](/(\\d{2}:\\d{2}:\\d{2})/)[1]',39,39,'||||||_0x82de|x74|x65|convdate|dd|mm|var||x67|x61|millisec|x68|x6C|yyyy|10|x44|x4D|x6F|x6E|x46|x75|x59|x72|x30|x2E|x6D|x63|eval|new|Date|date|time|toString'.split('|'),0,{}))
alert(date+' '+time);Módosítsd kedvedre!

-
Mr Dini
addikt
válasz
aprokaroka87
#5871
üzenetére
JS alól pl egyszerűen meg tudod kapni az adott időzónádban a UNIX millisecundumnak megfelelő adatokat pl így.
Írd meg, hogy pontosan hogy szeretnéd visszakapni a dátumot, és akkor azt is megformázom Neked!
-
Mr Dini
addikt
válasz
aprokaroka87
#5869
üzenetére
Szia!
Pontosan mit értessz millisecundum alatt? Tudsz egy mintát küldeni, hogy mit kapsz vissza az SQL Query során?
Egyébként, ha jól értelmezem, csak annyit kell tenned, hogy leosztod ezerrel a millisecundum-ot, és megkapod a rendes unix formátumot, amit már tudsz is konvertálni.
@hetn
Rpi vezérléshez minek külön program? Fogsz egy apacheot, felteszed PHP-vel vagy CGI-vel, bekonfigolod, és végül lérehozol pár szkriptet. Ezeket pedig egy mezei HTTP Get segítségével tudod a Taskerből meghívni, s már le is fut a Pi-n a szkript.
-
Mr Dini
addikt
válasz
aprokaroka87
#5836
üzenetére
Szuper, köszönöm!

Én kérek elnézést, legközelebb adok GDrive elérést is!

-
Mr Dini
addikt
válasz
aprokaroka87
#5834
üzenetére
Ok, kérésed számomra parancs!

Azért ide szoktam, mert így a legtöbb böngésző a linkre kattintva felajánlja, hogy egyből a Tasker nyissa meg (pl. Chrome, Firefox). Meg ez picit egyszerűbb, minta GDrive feltöltés.

-
Mr Dini
addikt
válasz
aprokaroka87
#5832
üzenetére
Tehát az anchornál akad el a Tasker? Hanyas verzió ez?

Furcsa, mert az csak egy kis komment, a program szimplán átugorja...
Nem hiszem, hogy az a probléma, hanem valamelyik Java Function nem okés, de azt csak debuggolással lehetne megmondani, hogy pontosan hol a gond.
-
Mr Dini
addikt
válasz
aprokaroka87
#5830
üzenetére
Így elég nehéz átlátni azt, hogy mi nem tetszik neki, de jelzi a Tasker errornál, hogy hol akadt pontosan el egy piros kis négyzettel.
Egyébként arra tudok tippelni, hogy a 4.2 az üres értéket, azaz a null stringet nem tudja kezelni.
Ez nem JS, azt csak az elején a változók beállításához használtam, hogy rövidebb/gyorsabb legyen a task.
Köszönöm mindkettőtöknek a próbát!
Ha @HREH-nél is jelentkezik, akkor ez úgy gondolom Tasker bug lesz, szóval szólok Pentnek! -
Mr Dini
addikt
Üdv!
Mostanában egy elég nagy projekten dolgozom saját célra, amiben elég nagy szerepe van a különféle HTTP Post kéréseknek. Namost, mivel a Tasker beépített HTTP Post actionjével nem tudok pl postdatát küldeni, illetve fejléceket sem, így gondoltam, hogy készítek egyet Java segítségével.
Igen ám, de a postdata-t ugyebár JSONként terveztem elküldeni, s ehhez össze is dobtam egy JSON buildert, de feltűnt, hogy nem tud egyből mit kezdeni a Tasker változókkal a Java Object típus, szóval csak úgy sikerült összehoznom a dolgot, hogy a Tasker változókból előbb Java változót (egy stringet) csinálok, s azt adom meg objectként.
És most jöjjön a lényeg!
Egy-két önzetlen tesztelőre lenne szükségem, aki beimportálná ezt a taskot, lefuttatná, és a vágólapja tartalmát beillesztené egy új hozzászólásba. Illetve ha valahol hibára futna a task, akkor azt is megosztaná velem.Nekem csupán az utolsó két metódus működik megfelelően, ahol ugyebár Java stringgé konvertálom a Tasker változót, a többi csak egy üres {} eredménnyel tér vissza, szóval így néz ki a végeredmény:
{} {} {"key1":"value1","key2":"value2"} {"key1":"value1","key2":"value2"}
Köszi!

-
Mr Dini
addikt
válasz
aprokaroka87
#5823
üzenetére
Szuper, használd egészséggel!
te egy zseni vagy
Azért ne essünk erős túlzásokba!

-
Mr Dini
addikt
válasz
aprokaroka87
#5820
üzenetére
A szöveges hónapnevekkel, amit rendszered visszaad a Tasker API hívására, nem akartam foglalkozni, így megírtam az egészet sima JS használatával, tehát a következő kód univerzális, sőt, akár böngészőben is futtatható ([link])!

/// Mr Dini's Tasker time formatter 2
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('f 7=["\\h\\8\\9\\p\\e\\9\\8","\\h\\8\\9\\v\\B\\o\\9\\m","\\h\\8\\9\\s\\t\\i\\i\\u\\8\\e\\k","\\w","","\\k\\8\\x\\i\\e\\j\\8","\\C\\e\\9\\j\\m"];f b=q r,c=b[7[0]](),a=b[7[1]]()+1,l=b[7[2]]();c<n&&(c=7[3]+c),a<n&&(a=7[3]+a);f y=l+a+c,z=b.A()[7[6]](/(\\d{2}:\\d{2}:\\d{2})/)[1][7[5]](/:/g,7[4])',39,39,'|||||||_0xa940|x65|x74|mm|today|dd||x61|var||x67|x6C|x63|x72|yyyy|x68|10|x6E|x44|new|Date|x46|x75|x59|x4D|x30|x70|date|time|toString|x6F|x6D'.split('|'),0,{}));
setLocal('date', date);
setLocal('time', time); -
Mr Dini
addikt
válasz
aprokaroka87
#5818
üzenetére
Ezt kétlem!

Add ki ezt JS-ben:
setClip(global('DATE')+' '+global('TIME'));
És másold be, hogy mi a vágólapod tartalma!
-
Mr Dini
addikt
válasz
aprokaroka87
#5816
üzenetére
Ez esetben be tudnád másolni, hogy a %DATE és %TIME változó értéke hogy néz ki a 4.2-n?
-
Mr Dini
addikt
válasz
aprokaroka87
#5814
üzenetére
A jelenlegi kódom a %date lokális változóba fogja tenni az átformázott dátumot, és a %time lokális változóba az időt.
Ha szeretnél más lokális változót használni, akkor a setLocal első paraméterét, azaz az aposztrófok közt lévő nevet módosítsd.
Ha pedig globális változóra lenne szükséged, mert pl másik taskban is használni szeretnéd ezt az értéket, vagy valami másért kell megőrizned a változó értékét, akkor a két setLocal-t cseréld le setGlobal-ra, az aposztrófok közt lévő változóneveket pedig írd át úgy, hogy nagybetűvel kezdődjenek!
-
Mr Dini
addikt
válasz
aprokaroka87
#5812
üzenetére
Szia!
Nem teljesen világos, hogy mit szeretnél, de összedobtam egy kódot, ami a Tasker DATE változóját átalakítja yyyymmdd-re, illetve a TIME változót hhmm00-vá (a 00 nem változik, azaz konstans, mivel az ms értéket a TIME változó nem adja át)...
A kód:
/// Mr Dini's Tasker time formatter
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('r 9=["\\s","\\x\\f\\b\\t\\e","\\l\\q\\g\\i","\\b\\c\\u\\v\\e\\w","\\d","","\\k\\c\\f\\b\\m\\n\\c","\\g\\o\\p\\i","\\d\\d"];a=h(9[2])[9[1]](9[0]);j(a[0][9[3]]==1){a[0]=9[4]+a[0]};j(a[1][9[3]]==1){a[1]=9[4]+a[1]};a=a[2]+a[0]+a[1];y=h(9[7])[9[6]](/\\./,9[5])+9[8]',35,35,'|||||||||_0xbbaf|date|x6C|x65|x30|x74|x70|x54|global|x45|if|x72|x44|x61|x63|x49|x4D|x41|var|x2D|x69|x6E|x67|x68|x73|time'.split('|'),0,{}));
setLocal('date', date);
setLocal('time', time);Az utolsó két setLocal-t nyugodtan módosítsd, ha más változóba szeretnéd kiírni!

-
Mr Dini
addikt
válasz
aprokaroka87
#5809
üzenetére
Mondjuk a cat /sys/class/leds/lcd-backlight/brightness parancsra gondoltál?

-
Mr Dini
addikt
válasz
aprokaroka87
#5801
üzenetére
Most nézem, hogy ez csak engedélyezéskor, illetve tiltáskor küldd broadcastot.
Nyiss egy ticketet, és kérd meg őket, hogy csináljanak egy inntentet profilváltásra is.
-
Mr Dini
addikt
válasz
aprokaroka87
#5799
üzenetére
Új profil->Event->System->Intent Received
Majd az action részbe illeszd be az előző kommentemben található intentet.
Aztán pedig rendelj hozzá egy taskot, és ez minden AFWALL állapotváltozáskor le fog futni. Viszont, ha konkrétabb álapotváltozást szeretnél csak figyeltetni, akkor ki kell nyerned az extrákat is hozzá (ez is benne van a linkelt kódban).
-
Mr Dini
addikt
válasz
aprokaroka87
#5797
üzenetére
Szia!
Amennyiben az adott alkalmazás fel van készítve erre (azaz küld pl egy Broadcast intentet ilyen esetben), akkor minden további nélkül megoldható.
Nem ismerem a programot, de ahogy látom Open Source, szóval átnéztem a kódját, és itt találtam néhány broadcast intentet.
Pl úgy látom, ezt tudnád elkapni státuszváltozáskor:
dev.ukanth.ufirewall.intent.action.STATUS_CHANGED
-
Mr Dini
addikt
válasz
aprokaroka87
#5790
üzenetére
Az nem fogja kikapcsolni a mobilnetet, csak az éppen aktuális státuszt tárolja tudtommal.
Egyedül az svc data disable parancs tudja shellből kikapcsolni, de ehhez meg root szükséges...
-
Mr Dini
addikt
válasz
aprokaroka87
#5787
üzenetére
Nem. Ez az adott alkalmazás nevében fut le (már, ha van hozzá joga), és a settings.db-be nyúl bele közvetett úton.
-
Mr Dini
addikt
válasz
aprokaroka87
#5785
üzenetére
Igen, de nem csak erre használható. Bármelyik taskba beleteheted.
A trükk az, hogy az autotools is a settings parancsot használja, csak GUI-n keresztül tudod utasítani a rendszert. Ezért kell neki adb-n megadni a secure_settings jogot, pont, mint a patchelt Taskeremnek.

-
Mr Dini
addikt
válasz
aprokaroka87
#5768
üzenetére
Nem állítottam egy szóval sem, hogy a Tasker kezeli az ilyesmit.
Szép is lenne, ha a Tasker önmagának tudna ilyen jogokat adni!Ezzel csak meghívja az app az Android rendszer egy beépített fájlkezelőjét (ez Nálad lehetséges, hogy Dokumentumok névvel szerepel), és innen tudod betallózni a fájlokat/mappákat, amihez engedélyt adsz a Taskernek. És ha van engedély, egy ún. Vault megengedi az appnak, hogy lekérje a fájlt a rendelkezésre álló API-k segítségével.
[Link ahol magáról az Activityről olvashatsz]
Illetve érdemes még a Vaultnak is utánanézni...
-
Mr Dini
addikt
válasz
aprokaroka87
#5766
üzenetére
Szuper!

Köszi a visszajelzést és a tesztelést!
-
Mr Dini
addikt
Csak kíváncsiságból feltettem pár Lollis eszközre és emulátorra a Taskert és megnéztem, hogy tudja-e kezelni az SD írás panelt és úgy tűnt, hogy nem jelenik meg a menüpont egyik esetben sem... Így, hogy ne kelljen mindenkinek az általam patchelt Taskeremet linkelni, kerestem egy workaroundot erre...
Szóval, első lépésként létrehoztam egy új taskot, majd rámentem a pluszjelre és azon belül a System->Send Intent-et választottam. Majd az ezt követő ablakban az Action részhez beillesztettem az android.intent.action.OPEN_DOCUMENT_TREE intent URI-t, majd egészen lent, a Target listában az alap Broadcast receivert lecseréltem Activityre.
Ezt követően a taskot bármikor lefuttatva felugrik a rendszer fájlkezelő activityje, ahol ki lehet választani, hogy mihez férhessen hozzá a Tasker.
Egy dolgot nem tudtam tesztelni, az pedig, hogy így megmarad-e reboot után az app joga. Ha nem, akkor ezen csak a Java function segíthet, vagy adb-n keresztül lehetne perzisztensen megadni neki ezt a jogot, de ezeket a megoldásokat kifejtem bővebben, ha érdekel valakit!
2. Annak nem kell ezt megcsinálni, akinek már volt fent a patchelt Taskerem, mivel az elintézi, hogy a rendszer cacheben még a Tasker törlés és Play verzióra (vissza)frissítés után is megmaradjon a jog neki.

BTW robot alatt sem találtam ilyen gyári opciót, de természetesen ez a megoldás működik ott, és a többi automatizáló esetében is, amennyiben tudnak Activity-t indítani GUI szálon...

3. Ez a Java functions eszméletlen sokrétű, nem is tudom, miért nem foglalkoztam vele többet eddig!
Ugyan nem lehet vele egy komplett appot összehozni, meg rengeteg limitációja van, de a segítségével nagyon komplex taskokat is össze tudok dobni!
És mindezt natív Android APIkon keresztül... Zseniális ötlet!Csak azt sajnálom, hogy a Looper nem működik rendesen, így GUIval kapcsolatos dolgokat nem tudok belőle kihozni és marad a Scene, meg a JS...
A fejlesztő meg nem akar vele mit kezdeni... -
Mr Dini
addikt
válasz
kaciokos
#5762
üzenetére
Nem kell hozzá plugin, a PowerAMP küld egy intentet és ezt figyeltetjük a Taskerrel.
A profiles fülön katt a + jelre, majd válaszd az eventet és azon belül a keresőbe írd be, hogy Send intent.
Ezen belül az Action paraméterhez kerüljön a com.maxmpz[...].
Majd rendelj hozzá egy taskot, amiben van egy mezei Variable set, ami a %paused lokális változó értékét beállítja a %Pampaused változó értékének. Így megmarad a legutóbbi állapot egy globális változóban, a %Pampausedben.
-
Mr Dini
addikt
válasz
kaciokos
#5755
üzenetére
Én azt csínálnám, hogy létrehoznék egy másik profilt intent received feltételként, majd beírnám neki a com.maxmpz.audioplayer.STATUS_CHANGED Action paramétert. Aztán egy hozzá rendelt taskba beletenném, hogy Variable set %Pampaused %paused (a globális %Pampaused változó értéke legyen a lokális %paused változó).
Így, ha megy a lejátszás, akkor a változó azt hiszem false lesz, egyébként pedig true.

És ezt a változót figyelném a BT kihangosítós taskban. Pl első elemként egy exit-et tennék be, aminek betenném feltételnek, hogy csak akkor hajtódjon végre, ha a %Pampaused egyenlő true-val, azaz csak akkor lépjen ki, ha nem megy a lejátszás, különben fut tovább zavartalanul a task.
-
Mr Dini
addikt
válasz
aprokaroka87
#5752
üzenetére
Szia!
Sajnos nem találtam a Taskerben elérhető functionok közt a WifiApControl-t, így egyelőre szerintem Java function segítségével nem fogod tudni kinyerni ezeket az adatokat.
Viszont, ha csak a csatlakoztatott eszköz IP-re és MAC címre lenne pl szükséged, akkor az javaslom, hogy dolgozd fel az ARP "táblát". Ezt egyébként egy mezei shellparanccsal be tudod tölteni Tasker változóba:
cat /proc/net/arp
-
-
Mr Dini
addikt
Sziasztok!
Kicsit szerettem volna kiismerni a Tasker Java function opcióját is, mert van pár dolog, amit a Tasker nem tud magától, viszont egy Java Class segítségével meg igen.
Első célnak azt tűztem ki, hogy összedobok egy auto fényerő állító taskot, ami lő egy képet minden telefonfeloldáskor, kiolvassa a fényerő értéket az ExifInterface segítségével, majd ezt egy lokális változóban a Tasker tudtára adja. Nos, ez szép, és jó, rengeteg infót ki tudok nyerni így a képből, pl az ISOSpeedRating-et stb., de valamiért a BrightnessValue-re null-t kapok vissza... Nézegettem és a doksi szerint a 24-es APIban került be ez a string, így ez sem lehet akadály...

Ugyanezt megírtam egy rendes Tasker pluginnek és az is null-t ad végeredményül. Délután megnézem, hogy van-e egyáltalán fényerő érték a lőtt EXIF adatai közt, de ha nincs, akkor szerintetek melyik Stringgel tudnék valami használhatót kiolvasni?
2. Csak kíváncsiságból... Kísérletezett már itt valaki Java Functionökkel?
Köszi!

-
Mr Dini
addikt
Az az érzés, mikor kb fél év szenvedés után rájössz, hogy mi a gond a taskoddal, és végre működik appként is, igazán felemelő!

Csináltam Javascriptben és egy HTML alapú webview Scene segítségével egy komplett SoundCloud lejátszót, mert nagy zenebolondként nem volt elég számomra az SC app által nyújtott minőség...
Ez működik, ahogy kell, de csak a Taskerből taskként futtatva. Ha az AppFactory-vel próbáltam exportálni, sosem jött össze a dolog... És ez hasonlóképp volt a többi kicsit komolyabb JS alapú taskjaim esetében is.Eddig annyira nem izgatott a dolog, de most át kellett volna küldenem a projektet app formájában egy kollégának. Ezért ma kb az egész délelőttöm debuggolásra ment rá, mivel sehogyan sem akaródzott működni a dolog.
A logok alapján az jött le elsőnek, hogy az app motor nem szereti a functionöket, így széttúrtam a kódot, és végeredményül kaptam egy csúnya, hosszú, de exceptionmentes kódot. Viszont ez sem segített sokat. Már majdnem feladtam, aztán, afféle végső ötletként beszúrtam egy HTTP Get-et inaktívként a taskba, és láss csodát, müködik az app!

Viszont, amit nem értek, hogy én extra permissionnek direkt beírtam az INTERNET-et, mégsem adta meg az App Factory ezt a jogot...
Szóval bárkinek, aki JS, Shell, vagy SL4A kódból próbál appot faragni, melegen ajánlom, hogy a leírt letiltott task elem segítségével biztosítsa a jogokat, mert a Tasker valamiért az Extra permissionökkel nem tud mit kezdeni!

Szvsz: végre van egy nagyon kicsi, és gyors SoundCloud alkalmazásom, ami sokkal szebb minőségben tolja a zenéket!

-
Mr Dini
addikt
-
Mr Dini
addikt
Igen, szeretem a munkám, elég gyakran sajnos előfordul a túlóra is...
A család az első, de néha még muszáj befejezni a melót.BTW nem ilyen értelemben gondoltam, hanem fejlesztői szemmel. Minek tette bele ezt a funkciót a Tasker dev a kódba, amikor már létezett erre egy megoldás. Ok, hogy jó dolog, de sok esetben például valami feltételhez van kötve a visszaállítás nálam. Olyankor csak az exit task és if páros segíthet.
Mondjuk azt még nem próbáltam ki, hogyha van egy Exit taskom, akkor is visszaállítja-e az eredeti állapotot.
-
Mr Dini
addikt
Errare humanum est.

Direkt azért írtam, hogy szerintem, mert sajnos most egy ideig nem tudom kipróbálni. Csak ezek szerint téves emlékekre hagyatkoztam. Egyébként ez egy kicsit furcsa. Exit taskkal meg lehetne oldani másképp is, mint írtam. És szerintem így a visszaállítás értelmét veszti...
Mod: emulátorból le tudtam tesztelni, valóban így működik. Nagyon köszönöm a javítást, megjegyeztem!
Ha ezt előbb tudom meg, nem szenvedek annyit pár taskkal... Kérdés, hogy ez a dolog csak a Wifi, BT stb esetén működik-e. Mindenesetre majd kikísérletezem! -
Mr Dini
addikt
válasz
kaciokos
#5670
üzenetére
Szia!
Szerintem akkor sem fogja lekapcsolni a wifit, csak egyszer fog lefutni a bekapcsolás. Csak akkor lenne jelentősége a hosszabb időintervallumnak, ha lenne exit taskod is. De így semmi nem fog történni, csupán zöld lesz az event nappal.
Ettől függetlenül én is azt szoktam csinálni, hogy a From és To részbe ugyanazt teszem.
(#5671) HREH
Naaa... Nem vagyok szolgáltatás!

-
Mr Dini
addikt
Na, végül csak összehoztam!

Ha ISO formátumban kérem le az időt, akkor az mindenhol ugyanúgy fog kinézni és meg fog egyezni az idő a GMTvel.
A kód:
unixTime = 8737
finalTime = new Date(unixTime * 1000).toISOString().replace(/.*T(\d{2}:\d{2}:\d{2})+.*/,'$1');
///flash(finalTime);
setLocal('%formattedtime',finalTime);A végleges eredményt a JS motor átadja a Taskernek a %formattedtime változóban, így lehet vele kezdeni bármit, illetve a flash-t kikommentelve akár ki is lehet iratni az eredményt.

-
Mr Dini
addikt
-
Mr Dini
addikt
Szia!
Nem értem pontosan, hogy a taskod mit csinál, mivel az AutoTools nincs meg nekem, de ha a Unix időt szeretnéd átkonvertálni HH:mm:ss formátumba, ahhoz egy mezei JS is elég.
Pl:
unixTime = 8737
date = new Date(unixTime).toString().split(' ');
flash(date[4]);PS: itt is gond lehet néhol a dátumkíírás formátumával, ha valamelyik lokalizációra más eredményt adna a sima Date függvény. Ilyenkor érdemes ISO-vá konvertálni az értéket (
.toISOString), mert az ugyebár fix formátum. -
Mr Dini
addikt
Igen, ez egy jó elgondolás, de ahhoz is patchelni kell a Tasker APK AndroidManifest fájlját, különben ADB-n keresztüli jog megadásra a droidod dobni fog egy SecurityException-t...

De újracsomagolva a Taskert az apktoolommal, majd ADB-n megadva a jogot (mert ezzel a joggal csak shell user rendelkezhet) működik pl a fényerőbeállítás is, plusz sok más settings állítás is!

Kérdés, hogy valakinek megér-e annyit a dolog, hogy elveszítse a frissítés lehetőségét... Mondjuk pl én még a 4.9u1-es verziót használom, mert nem láttam értelmét a frissítésnek... A számomra érdekes dolgokat tudja ez is.
-
Mr Dini
addikt
válasz
aprokaroka87
#5643
üzenetére
Tényleg, a settings parancs jó ötlet!
Ha van a Taskernek android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY joga, akkor még működhet is!
Majd csekkolom. -
Mr Dini
addikt
válasz
aprokaroka87
#5641
üzenetére
Gyári értékektől függetlenül?
Mert ha nem, akkor használhatja ugyanazt, mint a Tasker.
-
Mr Dini
addikt
válasz
aprokaroka87
#5639
üzenetére
Ami a data partíción van, ahhot kell root jog, mert máshogy az appok nem férnek hozzá. Minden app csak a saját mappáját látja.
Szóval igen, az egész adatbázis módosításhoz kell root.
-
Mr Dini
addikt
válasz
aprokaroka87
#5637
üzenetére
Igen. A /data/data/com.android.providers.settings/databases/
settings.db-re gondoltam. Itt pedig a screen_off_timeout értékét kell módosítani.-------------------
azt ellenőrizné, hogy a%DTOUTés a %Tökmindegy különbségeBocs, természetesen a %TIMES-re gondoltam, csak már a következő hsz-en gondolkoztam...

-
Mr Dini
addikt
válasz
aprokaroka87
#5629
üzenetére
Amennyire én tudom a Javascript és a Javascriptlet között csupán annyi lényegi különbség felfedezhető, hogy míg a sima Javascript egy .js fájlt futtat le, addig a Javascriptlet ad egy szövegdobozt, és itt lehet a kódot szerkeszteni. Utóbbi hasznos kis kódok esetén, viszont ha kevés rammal van megáldva az eszközöd, és viszonylag hosszú a kód, akkor érdemes fájlban tárolni a dolgot. Így egyrészt könnyebb szerkeszteni (akár PC-ről is), nem válik türelemjátékká a kód böngészése, illetve elvileg könnyebb megosztani másokkal az eredményt. De mindkét elem ugyanúgy az Android webviewjével futtatja le a JS kódokat (plusz a built-in funkcióit implementálja).
2. Szerintem itt a JS sem fog segíteni...
Mivel a DTOUT állításához egy appon belül ha jól tudom, csak egy megoldás létezik, ami csak a rendszerben megadott értékekre képes a fényerőt átállítani. Egyébként a legközelebbi elérhető, nagyobb értéket állítja be, ahogy @hetn is bölcsen megállapította!Amúgy az a beépített Taskeres JS funkció is hasonló elven működik, mint a Tasker GUI-n elérhető Display Timeout, szóval nem hiszem, hogy működni fog.
Szóval root nélkül (hacsak a kisegítő API-k nem tudnak ilyesmit
) nem lehet pontosabb értékeket megadni. Roottal is csak egy megoldást tudok hirtelen, az pedig, hogy egy Android SQLite adatbázisban módosítanám a fényerő értékét. Így akár teljesen el is lehet sötétíteni a kijelzőt, ha 0-ra állítod az értéket. Ezt használtam ki arra annó, hogy a telefon tudjon double-tapre ébredni. 
Egy szó, mint száz, a JS hasznos dolog, de nem mindenható. Ha valamit meg tudsz oldani a Taskerben, de hosszan/körülményesen, azt valószínűleg itt egy kicsit elegánsabban is össze lehet hozni, de a rendszer korlátozásait itt sem tudod kikerülni sajnos...

Szerk.: Mire megírtam, a kérdező már meg is adta a rövid és tömör választ!

-
Mr Dini
addikt
Szia!
Én a Task végére beszúrnék egy Variable Set-et, a neve legyen %Tökmindegy, az értéke pedig a %TIMES.
Majd a Task elejére beraknék egy if-et, ami azt ellenőrizné, hogy a %DTOUT és a %Tökmindegy különbsége kisebb, mint 60. A feltétel belsejébe pedig egy exit-et tennék, azaz, ha teljesül a feltétel (hogy nem telt el 60 másodperc), akkor ne fusson tovább a task.
Sok sikert!
PS: De ez csak elmélet, nem vagyok benne biztos, hogy az ifhez lehet-e pl math műveletet kötni (ha nem lehet, akkor előtte a különbséget is pl tedd ki változóba és azt ellenőrizd). Mindenesetre én valahogy így oldanám meg a feladatot (vagy elegánsabban a picit fentebb található JS és a Date globális fvkönyvtár használatával).

-
Mr Dini
addikt
válasz
Mr Dini
#5602
üzenetére
Közben privátban folytatódott a beszélgetés, és kiderült, hogy a Tasker lokalizációtól függően adja meg a DATE változó értékét, plusz a convert is picit máshogy működik... Így a kódom nem mindenhol fut megfelelően. Ezért írtam még egy kódot, ami a JS date globális függvénykönyvtárát használja. Remélhetőleg ez már működni fog mindenhol!

///Mr Dini's Day Counter
startDate = "2017. 02. 03."
today = new Date() / 1000 | 0
startDate = prompt('Írd be a kezdés idejét:',startDate);
function convSec(string){
var seconds = new Date(string) / 1000 | 0;
return(seconds);
}
startDate = startDate.replace(/\. /g,',').replace(/\./,'');
startDateSec = convSec(startDate);
flash('Az azóta eltelt napok száma: '+Math.floor((today-startDateSec)/24/60/60)); -
Mr Dini
addikt
válasz
Mr Dini
#5601
üzenetére
Helyesbítek! A helyes dátum minta a hónap-nap-év, sajnos a Convert nem toleráns. Ha máshogy van megadva a dátum, már nem tud vele mit kezdeni.
De, hogy ne maradj JS nélkül, írtam Neked a linkelt logika alapján egy példakódot
:///Mr Dini's Day Counter
startDate = "2017. 02. 03."
today = global('%DATE')
startDate = prompt('Írd be a kezdés idejét:',startDate);
startDate = startDate.replace(/(.*[^.])+\. (.*[^.])+\. (.*[^.])+./,"$2-$3-$1").replace(/0([0-9]+\-)/g,'$1');
startDateSec = convert(startDate,"datetimeToSec");
todaySec = convert(today,"datetimeToSec");
flash('Az azóta eltelt napok száma: '+Math.floor((todaySec-startDateSec)/24/60/60));Tulajdonképpen a kódom lényege a replace, ami átalakítja a dátumot év. hónap. nap.-ról a megfelelő dátumra.
Megjegyzések:
1. Ha nem szeretnél prompt-ot, kommenteld ki azt a sort!
2. Ez a kódrész:.replace(/0([0-9]+\-)/g,'$1')nyugodtan törölhető. Csak, mivel nem akart működni, így azt hittem, a 0-val kezdődő hónapokat, plusz napokat át kell alakítani úgy, hogy ne 0-van kezdődjön. De, mint kiderült, más volt a gond. Viszont benthagytam, mert így 100% ugyanúgy néz ki, mint a Taskeres DATE változó.
3. A végén a flashnél betettem egy Math.floor-t, azaz egy lefele kerekítést, mert azt vettem észre, hogy régi időpontoknál vannak tizedesjegyek is.Használd egészséggel és ha valami nem világos, kérdezz bátran!

-
Mr Dini
addikt
válasz
becenevem
#5600
üzenetére
Szia!
A probléma az, hogy a Variable Convert csak kötőjellel elválasztott dátumot képes konvertálni. Tehát a 2017. 02. 11. Nem jó, próbáld átírni 2017-02-11 -re, vagy közvetlen a setelés után illessz be egy Variable Search and Replace függvényt, és patternnek írd be a ". "-t, a kötőjelet pedig írd be a Replace with mezőbe. Aztán kell még egy replace, ami az utolsó pontot is lecseréli, de azt nem kötöjelre, hanem a semmire. Azaz a Replace with maradjon üres!
-
Mr Dini
addikt
-
Mr Dini
addikt
Az nem Tasker, a PHP egy ismert szkriptnyelv, aminek eredeti feladata, hogy szerveroldalt tud dinamikusan előállítani HTML-t a weboldalad látogatóinak. De használható még sok másra, pl kiváló parsolásra, illetve mailt is tudsz vele küldeni.
Az időzítést pedig a crontab oldaná meg.
Egyébként ránéztem az oldalra... Sajnos ez így nem megvalósítható, mert az újabb Android verziók már nem tudnak rendesen POST/GET kérést küldeni JS-ből. Ez a bamosz pedig egy nagyon bonyolult form (űrlap) alapján generálná a csv-t, amit pedig max ezzel a módszerrel lehetne leszedni.

Esetleg kérdezz rá náluk, hogy nem biztosítanak-e API-t hozzá...
2. én is amatőr Taskeres vagyok.

-
Mr Dini
addikt
válasz
aprokaroka87
#5579
üzenetére
Hmm, akkor valamiért gondolom nem szereti a bináris a space-t a stringeknél.
input text test
Ennek mennie kell... Feltéve, ha engedi használni root nélkül...
-
Mr Dini
addikt
válasz
aprokaroka87
#5575
üzenetére
Nem, nem kell unrootolni. Ha nincs bepipálva a Use root a Run shell-nél, akkor nem root shellben futtatja le a Tasker a kódot.
Egyébként terminálban a $ jelzi, hogy nem vagy root. A # pedig a root shell-t jelöli.
Ha kiadod $ mögött, hogy input text "just a little test", akkor beírja ezt a szöveget az emulátorodba?
-
Mr Dini
addikt
válasz
aprokaroka87
#5573
üzenetére
Nem kell su parancs. Egyébként is a Taskerben su helyett a Use rootot érdemes bepipálni.

BTW Nálad is lefut root nélkül és végre is hajtódik?
-
Mr Dini
addikt
válasz
#79335424
#5558
üzenetére
Persze, nyilván, de Pentnek elég sok teendője van így is. Aligha foglalkozna szerintem ilyen 'jelentéktelennek tűnő' problémával, mikor van rá workaround. És mint mondtam, a Tasker is tudja pontosan ugyanazt a megoldást, mint amit linkeltél, csak Java Objectekkel kell létrehozni, kb mintha egy droidos programot csinálnál.
-
Mr Dini
addikt
válasz
aprokaroka87
#5553
üzenetére
Ha épp olvassa a topikot
Alap!
Ez az egyik kedvenc topikom, plusz a Tasker a kedvenc Android appom! 
De írtam is neki privátban egy JS kódot, még aznap.
Történetesen ezt:setGlobal('%Time',global('%Time').replace(/[a-z] /g,':').replace(/[a-z]/g,''));Ez ugyebár a %Time változóban cseréli le a stringben megjelenő összes kisbetű és space párosítást egy ':'-ra, majd a maradék betűket kicseréli a semmire és a kapott eredményt kiírja a %Time változóba. Természetesen átírható a %Time változó neve, a lényeg csak annyi, hogy nagybetűvel kezdődjön a neve!
(#5548) hetn
Nem rossz ötlet a replace, én is valami ilyesmit csinálnék. De ha regex-et használsz, akkor megspórolsz egyet belőle. A fenti JS kódom is hasonlóan működik. Taskerben ez valahogy így néz ki:
A1: Variable Set [ Name:%Time To:12h 01m 43s Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Variable Search Replace [ Variable:%Time Search:[a-z] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In:%Time Replace Matches:On Replace With:: ]
A3: Variable Search Replace [ Variable:%Time Search:[a-z] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In:%Time Replace Matches:On Replace With: ]
A4: Flash [ Text:%Time Long:Off ](#5552) Somatom
Nem a rendszer része, hanem a rendszerre írt Java programoknál tudod használni ezt.
Tasker alatt is ugyanúgy lehet használni Java Object-tel ezt a megoldást, csak az kicsit bonyulultabb, nyilván nem fogok olyat írni, ha van egyszerűbb megoldás is.Egyébként a legtutibb és leggyorsabb megoldás (ha van fent busybox), shellbe berakni ezt, majd a kimenetét kiirányítani egy változóba:
date %TVagy ha a date bináris hiányos lenne:
date %H:%M:%S -
Mr Dini
addikt
válasz
aprokaroka87
#5529
üzenetére
Nyilván, a Droid küld egy "üzenetet" az alap lejátszónak, az meg vagy kezd vele valamit, vagy nem. Nekem Poweramp és a jetAudio plus gond nélkül kezeli.
Megoldás: használj normális zenelejátszót alapértelmezettként!

-
Mr Dini
addikt
válasz
aprokaroka87
#5527
üzenetére
Szia!
Nincs, de a KitKat-tól felfelé a droidok tartalmaznak egy media binárist, amivel root nélkül meg tudod ezt tenni.
Run shellbe:
media dispatch rewindVagy a fast forwardhoz ezt rakd be:
media dispatch fast-forward -
Mr Dini
addikt
válasz
aprokaroka87
#5515
üzenetére
Lehetséges, nem tudom...
Amit még érdemes lenne ellenőrizni, hogy a romodban van-e test parancs.
Ha nincs, akkor bug report!
-
Mr Dini
addikt
válasz
aprokaroka87
#5513
üzenetére
Próbáltad már a /sdcard/Notifications elérési utat pl?
-
Mr Dini
addikt
válasz
aprokaroka87
#5511
üzenetére
Nálam a legfrissebb Taskerrel lát minden mappát a belső SD-n is...

Egyébként hogyan hoztad létre a mappákat? Nem valami jogosultságot kéne megadni a Taskernek?
-
Mr Dini
addikt
válasz
aprokaroka87
#5506
üzenetére
Hello!
Szokásos JS one-liner tőlem... Ez dob valamit, ami nem undefined?:
alert(listFiles('Android',true));Akár az Android mappát Notifications-ra is átírhatod a kódban.
-
Mr Dini
addikt
válasz
aprokaroka87
#5478
üzenetére
Persze, hogy nem. Még mindig nem tudom, pontosan mit szeretnél csinálni, ami miatt real time kéne egy változót frissítgetni, de a Tasker nem erre lett megálmodva, megaztán ez rengeteg erőforrást jelentene...
Ez akárhányszor futtatod a szkriptet, kinyeri a számot a WIFII változóból. Nem fog csodát tenni... Max egy ciklussal tudnád megoldani, ami folyamatosan fut és olvassa a változót. Ha pedig mondjuk 2-a Signal, akkor kilép a ciklusból és megy tovább a taskod --> végrehajtódik az, amit szeretnél, hogy megcsináljon kicsi jel mellett.
De szerintem sokkal ésszerűbb mondjuk percenként egyszer ránézni a jelre....
-
Mr Dini
addikt
válasz
aprokaroka87
#5475
üzenetére
Szia!
Percenként tudsz ellenőrizni max. Egyébként a WIFII változóból le tudod splittelni a kellő részt akár a beépített Variable Splittel is. Csak egy másik változót használj, ne a Tasker globális WIFII változóját.
De pl itt egy JS one-liner:
setLocal('wifisignal',global('WIFII').split('Sig: ',2)[1].split('\n',1)[0]);
Ezt beszúrod a task elejére pl, és amíg fut a task, addig a wifisignal lokális változót meghivatkozva megkapod az aktuális signal számot.
Viszont, ha több Taskban is szeretnéd használni (pl Perform Task segítségével) a kódot, akkor a setLocal-t cseréld le setGlobal-ra és a 'wifisignal' helyére a 'WifiSignal'-t írd pl. Így menni fog.

-
Mr Dini
addikt
válasz
aprokaroka87
#5444
üzenetére
Eddig ezt nem mondtad. Jobb lenne, ha az elején pontosabban körülírnád, hogy mire lenne szükséged.
Én pl ezt dobtam össze:
///Mr Dini display timeout flasher
var dtdout = global('%DTOUT');
min = Math.floor(dtdout/60);
sec = dtdout-min*60
if (min != 0 && sec != 0){
flash('A képernyő időkorlátja: '+min+' perc '+sec+' másodperc');
}
else if (min == 0){
flash('A képernyő időkorlátja: '+sec+' másodperc');
}
else if (sec == 0){
flash('A képernyő időkorlátja: '+min+' perc');
}Persze lehetne még rajta szépíteni, meg ha a dtout mínusz előjelű, alkor elhasal ez a megoldás, de feltételezem soha nem lesz egy kijelző idő mínusz.

Kiindulási alapnak talán jó lehet...

Használd egészséggel!

-
Mr Dini
addikt
Pedig nem bonyolult.

A Tasker globális %DTOUT változó értékét töltöm be a JS kódba, aztán rögtön elosztom 60-al, a
global('%DTOUT')/60)-lal. Majd következik a lefele kerekítés, amit a Math.floor tesz meg az eddig kapott "értékkel". Végül pedig az eredményt kiiratjuk egy flash-sel, ami egy Taskeres function, ez csinál Neked toast-ot. Szerintem jó, hogy a Tasker tud ilyesmit, mert néha sokkal gyorsabban és lényegre törőbben tudok összehozni vele dolgokat. Meg a melóhelyen is lehet vele kalózkodni!
-
Mr Dini
addikt
A törtszámot is könnyen meg lehet oldani. Most nincs előttem Tasker, így csak JS-t tudok írni példának (nem teszteltem, fejből nyomom
).Tehát a szimpatikus one-liner kód, ami kiírja Toastként az aktuális timeoutot, valahogy így néz ki:
flash(Math.floor(global('%DTOUT')/60));Itt a lényeg a Math.floor függvény. Ez mindig lefele kerekíti az integer-t, amit beadsz neki.

-
Mr Dini
addikt
válasz
aprokaroka87
#5379
üzenetére
Nekem úgy tűnik, hogy maga a link rossz. Ez vam beírva?:
https://m.prohardver.hu/tema/android_os-t_hasznalok_szakmai_topicja/friss.html -
Mr Dini
addikt
válasz
aprokaroka87
#5376
üzenetére
Értem. Megnéztem, nálam Works, like a charm*!

Csak annyit kellett csinálnom, hogy a HTTP Get-nél a http://-t kicseréltem https://-re.
* megy, mint a karikacsapás
-
Mr Dini
addikt
válasz
aprokaroka87
#5374
üzenetére
Mindegyik az utolsót mutatja. Csak az egyiket tudod több topik figyelésére is használni. De nézd meg a task nevét és írd be ide!

Új hozzászólás Aktív témák
- Tudástár Tasker - AZ Android alkalmazás
- Samsung Galaxy A04s / 4/64GB / Kártyafüggetlen / 12Hó Garancia
- Samsung Odyssey G5 C32G55TQWR 32 Ívelt 1000R WQHD Gamer Monitor 6 hó garancia Házhozszállítás
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Deep Purple-1 ÉV GARANCIA - Kártyafüggetlen, MS3913
- HP ProDesk 600 G5 i5-9500 8GB 256GB 1 év garancia
- Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
), de ebben most tévedsz. Looperrel pl. meg lehet adni a kódban, hogy mennyi ideig látszódjon a Toast. S ha a Taskerben nem bugolna a Looper (nem akadna be az egész), akkor még működne is... De Java applikációban simán tudsz 5 mp-es Toastot is csinálni. 




A fejlesztő meg nem akar vele mit kezdeni...


Elfelejtettem, hogy ms-ben kell megadni a Date-nek az időt... Így már 03:25:37-et dob vissza:





