- Motorola Edge 50 Fusion - jó fogás
- iPhone topik
- Samsung Galaxy Watch7 - kötelező kör
- Bemutatkozott a Poco X7 és X7 Pro
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Android alkalmazások - szoftver kibeszélő topik
- Redmi Note 10S - egy a sok közül
- Itt egy pár fotó az iPhone 17 sorozatról
- Több újítással támad a Xiaomi Redmi 3s
- Garmin Venu X1 - vékony, virtuóz, váltságíjas
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Ú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
-
thesound
addikt
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
- Gigabyte RTX 2070 8GB / Beszámítás OK!
- AKCIÓ!!! GAMER PC: i7-12700KF +RX 9060XT/9070/9070XT +16-64GB DDR4! GAR/SZÁMLA!!!
- Manli RTX 3070 8GB - 13 hónap garancia / Beszámítás OK!
- AKCIÓ!!! DDR5 GAMER PC: RYZEN 7 8700F/9700X/9800X3D +RX 9060XT/9070/9070XT +16-64GB DDR5! GAR/SZÁMLA
- Gainward RTX 2060 Pegasus 6GB Csavarmatricás! / Beszámítás OK!
- Bomba ár! Dell Latitude 7390 2in1 - i7-8G I 16GB I 256SSD I 13,3"FHD Touch I HDMI I Cam I W11 I Gar
- Hp USB-C/Thunderbolt 3 dokkolók: USB-C Universal, G2, G4, G5, Hp Elite/Zbook- Thunderbolt 4 G4
- Eredeti DELL 240W töltők (LA240PM160)
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Acer TravelMate P214 i3-1115G4 8GB 256GB 14" FHD 1év garancia
Állásajánlatok
Cég: FOTC
Város: Budapest