Új hozzászólás Aktív témák
-
Mr Dini
addikt
válasz
slice14
#6321
üzenetére
A második és a harmadik kód szinte ugyanaz. Csak picit gyorsabb. Használhatod a második megoldást is, vagy akár az elsőt, ez csak egy javaslat volt a részemről.
Nem feltétlenül kell az egész kódot refaktorolni (újraírni), de ha új dolgokat adsz a kódhoz, amik nem függnek szorosan az eddigi koncepciótól, azt meg lehet oldani így is.
700+ sor
. Azt hogy szerkeszted? Nekem össz-vissz 8 soros az egész, bár én csak a háromnapi szöveges előrejelzést, az aktuális hőmérsékletet, a mai max/min értéket, illetve a helyet és az országot nyerem ki. Mondjuk ennél több adat nem is nagyon férne ki a statusbar értesítésre... -
Mr Dini
addikt
válasz
slice14
#6308
üzenetére
Igen, valahogy így gondoltam.

Viszont, JS-ben (és Javaban) az a "trend", hogy változónevet csak spec. esetekben kezdünk nagy betűkkel. S a második szótól kezdve nagybetűzünk csak. Így pl. a Unixtime helyett a unixTime a "szebb". Persze ez nem sokat változtat a kódon, csupán könnyebben értelmezhetővé teszi a más programozók számára.
Illetve a Unixtime változó felesleges, mert inicializálod, adsz neki értéket, majd rögtön át is másolod a price1 változóba. Csak feleslegesen fogyasztja a memóriát. Mehet a global érték egyből a price1-be.
A harmadik pedig, hogy nagyon hasznos a rengeteg beépített Tasker változó, de amikor lekérdezed az értékét, akkor a Droid meghívja a Tasker adott kódját, az pedig feldolgozza, majd visszaadja a pillanatnyi értéket. Ez is idő. Viszont a JS kód lefutásra elküldésekor a Tasker az összes global(xyz) helyére behelyettesíti az aktuális értéket, s csak ezek után fut le maga a JS. Szóval ha már adott a Javascript, ajánlom figyelmedbe a Date osztályt, amivel szépen le lehet kérni az időt Unix időben.
Egyébként itt az én megoldásom (Figyelj arra, hogy mindegyik kódban MS-ben kértem le a UNIX időt, s a UnixUpdateTime nevű változót olvasom be!):
var interval = 20; // in minutes
if(new Date().getTime() - new Date(parseInt(global('UnixUpdateTime'))).getTime() >= interval * 60 * 1000) {
setLocal('cantaskrun', true);
} else {
setLocal('cantaskrun', false);
}S ha feltételezzük, hogy a UnixUpdateTime lehet üres, vagy valami csoda folytán nem számsorozat, akkor itt egy kicsit biztonságosabb megoldás:
var interval = 20; // in minutes
function getDateFromTaskerVariable(varName) {
if(parseInt(global(varName))) {
return parseInt(global(varName));
}
else {
return 0;
}
}
if((new Date().getTime() - getDateFromTaskerVariable("UnixUpdateTime")) >= interval * 60 * 1000) {
setLocal('cantaskrun', true);
} else {
setLocal('cantaskrun', false);
}És itt az utóbbi kódom rendesen optimalizálva (ezt érdemes élesben használni, a többit csak azért másoltam be, hogy értelmezhető legyen):
var interval = 20; // in minutes
var _0x9479=["\x67\x65\x74\x54\x69\x6D\x65","\x55\x6E\x69\x78\x55\x70\x64\x61\x74\x65\x54\x69\x6D\x65","\x63\x61\x6E\x74\x61\x73\x6B\x72\x75\x6E"];function getDateFromTaskerVariable(_0xb822x2){return parseInt(global(_0xb822x2))?parseInt(global(_0xb822x2)):0}( new Date)[_0x9479[0]]()- getDateFromTaskerVariable(_0x9479[1])>= 60* interval* 1e3?setLocal(_0x9479[2],!0):setLocal(_0x9479[2],!1)A logika az egészben annyi, hogy a Taskernek igyekeztem minél kevesebb számolási feladatot adni (konkrétwn nullát), mivel ezekben a Javascript sokkal gyorsabb és pontosabb. Így a végső eredmény a cantaskrun lokális változóba kerül. Amennyiben letelt az intervallumban megadott idő a két lefutás közt, úgy true lesz az értéke, egyéb esetben pedig false. Azaz a JS után közvetlenül egy Stop Task [HA %cantaskrun eq false] megoldja a dolgot.

Használd egészséggel, s ha nem megy valami, vagy nem világos, akkor kérdezz bátran!

PS: Mivel az összes projektem gyalulásra került egy szerencsétlen user error kapcsán, így elveszett az összes segítő szkriptem. Így a kódot teljes mértékben kézzel írtam, ezáltal tesztelve is lett.

Üdv!
-
Mr Dini
addikt
-
Bozek
nagyúr
-
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.
-
slice14
veterán
válasz
slice14
#5261
üzenetére
Elmondaná nekem valaki hogy mitől van az, hogy telefonon reboot után egy jó fél napig nem fut le helyesen az adott időjárás js, de utána meg már lefut szépen. Tuti hogy nem időhöz van kötve, hanem valami feltétel teljesül vagy nem teljesül. Mint korában írtam ez 7.1.1-el csinálja.
-
Mr Dini
addikt
-
-
Mr Dini
addikt
-
Mr Dini
addikt
válasz
slice14
#4707
üzenetére
Szia!

A lehető legjobbkor néztem be ide!

Nekem semmi nem lesz undefined. De ha kiváncsi vagy hol akad el rakj ki flasheket, amik kiírják toastba, h melyik változó mit tartalmaz. Ha undefined, akkor tudod mivel kell kísérletezni!
Nekem a ,-t is lecseréli, viszont a Date-t nem cseréli. Nekem az '-' -lel van alapból.
-
aprokaroka87
nagyúr
válasz
slice14
#4581
üzenetére
na moszt olyat fogok mutizni hogy az csuda lösz kéröm szépen
lehet hogy ebben a szövegben lesz a megoldás

�ELF����(���4`!�4 �(���444�����4�4�4������2�2�������.�.������� � . .0�0���Q�td��p����������R�td���.�.������/system/bin/linker����������%�+�B�I�Q�Y�^�d�k�t0���{0�����0������������������+��<��g�����������"��M��w�����������3��U��a��h��o��__cxa_atexitstrcmpopenmmapioctlclose__aeabi_unwind_cpp_pr0strlen__errnofprintf__sFwritemunmapstrerror_edata__bss_start_endatoiandroid_atomic_dec_ZNK7android7RefBase9decStrongEPKvdup_ZN8SkBitmap9setPixelsEPvP12SkColorTable_ZN8SkBitmap9setConfigENS_6ConfigEiii_ZN8SkBitmapC1Ev_ZN8SkBitmapD1Ev_ZNK22SkDynamicMemoryWStream10copyToDataEv_ZN22SkDynamicMemoryWStreamC1Ev_ZN22SkDynamicMemoryWStreamD1Ev_ZN14SkImageEncoder12EncodeStreamEP9SkWStreamRK8SkBitmapNS_4TypeEi_ZN7android21SurfaceComposerClient17getBuiltInDisplayEi_ZNK7android16ScreenshotClient9getPixelsEv_ZNK7android16ScreenshotClient8getWidthEv_ZNK7android16ScreenshotClient9getHeightEv_ZNK7android16ScreenshotClient9getFormatEv_ZNK7android16ScreenshotClient7getSizeEv_ZN7android16ScreenshotClient6updateERKNS_2spINS_7IBinderEEE_ZN7android16ScreenshotClientC1Ev__libc_initoptarggetoptoptindliblog.solibcutils.solibutils.solibbinder.solibskia.solibui.solibgui.solibc.solibstdc++.solibm.so%*"�
��%����� �)�&�!$#��'��� ��������
���(P/�T/�X/�\/�d/�`/�'h/�)x/�&|/���/���/�(�/���/���/� �/���/�
�/���/���/�%�/���/�$�/���/� �/�!�/�"�/�#�/���/���/���/���/���/���/���/���/���/���/���/���/�
�/���/����-�����������%Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ���Ə��ʌ���Ə��ʌ���Ə��ʌ���Ə��ʌ���Ə��ʌ���Ə��ʌ���Ə��ʌ���Ə��ʌ�|��Ə��ʌ�t��Ə��ʌ�l��Ə��ʌ�d��Ə��ʌ�\��Ə��ʌ�T��Ə��ʌ�L��Ə��ʌ�D��Ə��ʌ�<��Ə��ʌ�4��Ə��ʌ�,��Ə��ʌ�$��Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ����Ə��ʌ����H-�������M�X0���0��T ��� ��� �L ��� ��� �D ��� ��� � ��� ��� ���K�������$ ���0��� ���0�������K����P#����������������H-�������M����0���������0���0��� ��q���0�������K����T#-��O'�N���F
F��Ă�F~D����D��h(����?(��d(����p(��O�� ��H3X�h�����F��IpX�I�0yDH� F)FBF���C������V�� �h����� ����F�0:�.��,,�U�#�@�A!O��r@F���A��F�����h����F�H�IBF0XyD�0��� F��@F����(�݊I�����yD���(��O��
�IpX�I�0yDRF#���� ���������9F�����*��������(@���O��4���F��������������������������&F�F"�PFO�A��'�����+ � +
��+���F
��$�'�����'�����&�'����O��4�F&FPF�����R�;���������!:��*����L��D����'���������z�
AF����z����~�P#�"�����~������F(F9izi���8�����(��x`8hCh8F�G��������������"(F��j����"(F��f����"(F��`�(FAF
��\�(F��.�r���0F!F��j���3��hR���X�����h���8��h��T��L���^� 9���� H!xD���(�F��O��4&F��[�����O����������������� ^C���"����#���wC@F���!F��8�C��F����Y�"��������������������>��������Android�������8������usage: %s [-hp] [-d display-id] [FILENAME]
-h: this message
-p: save the file as a png.
-d: specify the display id to capture, default %d.
If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.
phd:Error opening file: %s (%s)
.png/dev/graphics/fb0������������������l/����H ���� �8�����o���H�����
������v���������������������������� �.!���.����.�������o��.�.�.��X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GCC: (GNU) 4.6.x-google 20120106 (prerelease)� �GNUgold 1.10A?aeabi�5�ARM v7�
�A�� �
���������������������"�$�*�B�D�.shstrtab.interp.dynsym.dynstr.hash.rel.dyn.rel.plt.text.note.android.ident.ARM.exidx.rodata.preinit_array.init_array.fini_array.dynamic.got.bss.comment.note.gnu.gold-version.ARM.attributes��4�4�����H�H�����������������#������D����) �� � 8���2 �H H ������6��X
X
���;���������A��������U�p���������`������J��h���.����w���.��������.������� . �0�������P/P������0 ����0 /����0 ����pL @���� ��remélem nem kapok a fejemre a modiktol
ez a system/bin/screencap fájl
-
válasz
slice14
#4564
üzenetére
Sorry, gyorsabb mint linkelni. Ami nem tetszik, hogy a megvásárolt appjaim között sem látszik...
Pent didn't get a warning regarding the removal and in the Developer Console, he sees this explanation:
"This app has been removed from Google Play for a violation of the Google Play Developer Programme Policy regarding Dangerous Products. Please review the Optimising for Doze and App Standby article, modify your app's manifest and resubmit. More details have been emailed to the account owner."
It seems that the removal was based on the existence of a dangerous permission that disables Doze in the app's manifest: android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. The same reason was given to Stefan Pledl for the removal of his app LocalCast from the Play Store
-
-
#79335424
törölt tag
válasz
slice14
#4471
üzenetére
Ezek formázási minták.
Symbol: a használandó kód, pl: "D"
Mearning: a "D" jelentése: day in year = az év hányadik napja
Kind: milyen jellegű infót ad vissza (számot)
Example: például 189Pl., ha valamilyen módon értelmezésre kerül a dátumra vonatkozó kérdés, akkor a táblázat alapján a válasz két TTS szöveg.
1.: "A mai dátum"
2.: idő szövegesen -> formázott szöveg -> minta -> MMMM dd
Ettől Maris így szól: A mai dátum szeptember tizenhat.
A táblázatban szereplő kódokkal lehet variálni, hogy miket mondjon Maris. Ez natív Android megoldás.Azt nem tudom, hogy Taskerben hogy kell minta alapján formázott szöveget beállítani. Robotban így néz ki:
-
#79335424
törölt tag
válasz
slice14
#4469
üzenetére
Én az Android dokumentáció alapján csináltam.
-
#79335424
törölt tag
válasz
slice14
#4467
üzenetére
Miért kell ehhez autovoice? Ezt egy síma, TTS felolvasással is meg lehet oldani, azzal pedig le lehet kezeltetni a változókat. Legalábbis, Robottal így oldottam meg.
http://youtu.be/eXKZHQwdt7I
Kb. az utolsó 10mp -ben mondatom ki a dátumot és az időt. Ez egy síma szöveg + változók. -
krysn95
csendes tag
válasz
slice14
#4461
üzenetére
ez működőképes és jó 5ket amíg alig pár parancs van és azt is biztosan tudom, hogy melyeket akarom összekapcsolni
de én azt szeretném hogy akár az összes parancsot is tetszés szerint összetudjam kapcsolni egy hang paranccsal.
Youtube tutorialban már láttam ilyet, de nem jövök rá, hoyg csinálják..Pl.: kapcsold fel a lámpát ÉS mond be az időt ÉS nyisd ki az ajtót ÉS indítsd el az X appot
erre ki tudja a a varázslatot?
-
krysn95
csendes tag
válasz
slice14
#4458
üzenetére
"Külön taskot hozol létre a say-nak és beleírod az adott változókat a megfelelő sorrendben.
A parancs meg meghívja az adott taskot, amiben a say van"Ez stimmel. A kérdés az hogy két vagy több ilyen parancsot hogyan kapcsoljak össze egy mondatban?
Hangparancs1-->Say1
Hangparancs2--> Say2Csak külön-külön megy..
de ha egyben adom meg neki egy mondattal, hogy "parancs 1 és parancs 2" akkor nem hajtja végre mindkettőt.
Mit kellene beállítanom ehhez?
köszönöm!
-
ltpalermo
csendes tag
válasz
slice14
#4412
üzenetére
ehhez nem feltétlen kell a tasker, a zooper-nek van rá beépített változója, a #SASET# ez 0-t ad vissza ha nincs beállítva ébresztő, 1-et ha igen. én pl így oldom meg, h ne írja ki ha nincs beállítva:
$#SASET#=0?:akármi amit ki akarsz iratni vele$ ez pont az csinálja amit szeretnél, semmit nem ír, ha nincs beállítva, ill. ha be van akkor azt amit a : után írsz -
ltpalermo
csendes tag
válasz
slice14
#4310
üzenetére
lehet az volt a baj, de még úgyis ránézek majd, mert vannak még benne olyan dolgok amik jól jöhetnek, ha megtanulom őket
egyébként pontosan úgy csináltam, ahogy a pl-t írod, csak minden egyéb műveletet magával a taskerrel végeztetek el (pl. ha vmit vágni kell, vagy átalakítani ilyesmik).
az óránkénti előrejelzéssel meg nem tudom, mit lehetne kezdeni. ugye az is egy nagy tömb lesz a fájl-ban, mint a current_observation és forecast stb., csak több kisebb tömbből áll. minden órára külön és ezekből van elég sok, habár nekem csak az első 8 óra kellene.
de akármi alapján próbálom megmondani a js-ben, h ezen tömbön belül nekem az első kisebb tömbből kell a hőmérséklet stb. (majd ugyanez a 2.-ból és így tovább) nem ad vissza semmit. de nem is olyan logika alapján van felépítve a tömb mint a többi, valószínű az a baj. -
Mr Dini
addikt
válasz
slice14
#4302
üzenetére
Szia!
Lesplitteled a °C-t és az így kapott Valtozo[0]hoz hozzárakod a °C-t kézileg, ezt berakod setGlobalba, azt ennyi. Vagy, ha eleged van a splitből a püben leírt convertet is használhatod, csak nem htmlToText-el.
--
A többit privátba!
ltpalermo:
A parser lassan futott le, mivel a task nálam olyan 300 "elemből" állt, nála 200 körül volt és így elég lassan futott le. Ezért közösen (én meg slice14+ a JS topik és Karma (
)) összedobtunk egy JSON parsert JSben. És így a kb 2 perces futásidőből 10 mp lett. 
-
-
Adamo_sx
aktív tag
válasz
slice14
#4225
üzenetére
Én K910-en, CM12.1-gyel használom. A 18RC (CM) verziótól nekem is elkezdett működni a Secure Settings, bár én nem PIN-t, hanem mintát használok. Aztán eltelt 3-4 nap és azóta: Secure Setting crashed...

Azonban találtam egy Lolli alatt működő mobil adatkapcsolat ki/bekapcsolási módot (nem tudom volt-e már), igaz root kell hozzá, viszont Secure Settings nem:
Ki:
Run Shell: Command: svc data disable
Be:
Run Shell: Command: svc data enable -
slice14
veterán
válasz
slice14
#4233
üzenetére
Mire leírtam, javították a problémát. De a kérdésem akkor is fenn áll. Ha nincs adat, akkor hogy tudom átugratni a következő sorra és írja ki hogy na. Gondolom valahogy if-el megoldható.
Én így képzelem:
A1 If: %Jelenlegi meq </weather>
A2 Split: %Jelenlegi - <weather>
A3 Split: %Jelenlegi2 - </weather>
A4 Split: %Jelenlegi21 - <weather>
A5 %Jelenlegiidojaras - %Jelenlegi21
A6 End if
A7 If: %Jelenlegi eq </weather>
A8 Ide mit kéne irní?
A9 Set: %Jelenlegiidojaras - %Jelenlegi
A10 End ifViszont ezt nem szeretném minden adatnál külön eljátszani.
-
slice14
veterán
válasz
slice14
#4231
üzenetére
Ill, javítanám a hiba okát.
A <weather></weather> között nincs adat. Valamit bizgerál a wundergtound. Hogy tudom azt megoldani, hogy ha nincs tartalom (<weather/>) akkor azt írja ki pl hogy ismeretlen vagy na? Azért lenne fontos, hogy lefusson a task, akkor is ha nincs adat.
Legutoljára 9.40-kor frissült notifi és a widget, mert elakad a képen látható ponton.
-
Teasüti
nagyúr
válasz
slice14
#4199
üzenetére
Tasker kézikönyvből: In JavaScript(let) actions, local variables (all lower case, e.g. %myvar) are directly accessible in the JavaScript without the % sign (e.g. myvar). If the script changes the value, the new value is transparently used by subsequent actions in the task.
-
Teasüti
nagyúr
válasz
slice14
#4195
üzenetére
Megéri amúgy foglalkozni vele, ha érdekel a mélyvíz. Pl javascript-ben az XML táblából egyetlen paranccsal ki lehet olvasni a kellő infót, amit ahogy nézem a mai napig Split task-al erőszakol meg mindenki.

W3School.com oldalon sajátítottam el, jó tutorial-ok vannak fent. Van egy rakat online script szerkesztő oldal is, bár arra már nem emlékszem mit használtam.
-
Teasüti
nagyúr
válasz
slice14
#4193
üzenetére
Hogy érted pontosan? Helyettesítő szótár néha a Svoxhoz is kellett, sőt később már inkább Taskerből pofoztam kiejthetővé a kifekezéseket.
250 programsort már érdemes volna átültetni javascript-be. Hatékonyabb és gyorsabb.

Kíváncsi vagyok mennyit fejlődött a javascript integráció, remélem már üzembiztos az összes task scriptlet-ből meghívva.

-
gery2123
őstag
-
-
Mr Dini
addikt
válasz
slice14
#4110
üzenetére
Szia...! (
)Szerintem a profilban ezt nem tudod megodani...
Talán a Variable value segítségével, ha beírod a conditionsba a %Time kisebb, mint a %sunset/%naplemente3. De ugye ez csak éjfélig működik...
Onnantól kell még1 profil. 
Én ezt is egy if-be raknám.
Szerk.: Hopp, azt elfelejtettem mondani, h a %TIME .-al választja el az órát, percet, erre figyelj!

Új hozzászólás Aktív témák
- Tudástár Tasker - AZ Android alkalmazás
- ThinkPad (NEM IdeaPad)
- Az eddigi legolcsóbb, 3D V-Cache-t használó CPU-ját hozta forgalomba az AMD
- Revolut
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- AMD vs. INTEL vs. NVIDIA
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- mefistofeles: Az elhízás nem akaratgyengeség!
- PlayStation 5
- WoW avagy World of Warcraft -=MMORPG=-
- További aktív témák...
- Dell Pro 14 Premium PA14250 14" 3K OLED érintő Ultra 7 268V 32GB 512GB ujjolv gar
- 4 db Be Quiet Dark Power Pro 11 1000W 80 Plus Platium tápegység eladó!
- Sigma 60-600mm f/4.5-6.3 DG OS HSM Sports objektív ( Canon ) - Újszerű -
- Honor Magic8 Lite 8/256GB Újszerű,Kártyafüggetlen,Dobozos,Tartozékaival. 1 Év Garanciával!
- Szép Lenovo Legion Y530 15,6" FHD IPS / i5-8300H 4GHz / 8GB DDR4 / 256GB M.2 SSD / GTX 1050 Ti
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- Ingyen elvihető hibás/törött TV/monitor
- Lenovo Thinkpad X1 Yoga 5th Gen. i7 10th, 16GB RAM 27% ÁFÁS (0329)
- iPhone 12 Pro 128GB 100% (3hónap garancia) - AKCIÓ
- AKCIÓ! Dell Latitude 5455 14 FHD+ üzleti notebook - Qualcomm X Plus X1 16GB DDR5 512GB SSD W11
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
. Azt hogy szerkeszted? Nekem össz-vissz 8 soros az egész, bár én csak a háromnapi szöveges előrejelzést, az aktuális hőmérsékletet, a mai max/min értéket, illetve a helyet és az országot nyerem ki. Mondjuk ennél több adat nem is nagyon férne ki a statusbar értesítésre...


)


AF����z����~�P#�"�����~������F(F9izi���8�����(��x`8hCh8F�G��������������"(F��j����"(F��f����"(F��`�(FAF


)) összedobtunk egy JSON parsert JSben. És így a kb 2 perces futásidőből 10 mp lett. 



Onnantól kell még1 profil. 