Hirdetés

Hozzászólok Aktív témák

  • mandras81

    senior tag

    válasz Teasüti #144 üzenetére

    Csak ki kell iratni a beépítetteket egy másikba, és már meg is lehet lesni (bár, ezt gondolom tudtad). :))

    Köszi a segítséget, ennek örömére leírom az általam használt teljeskörű internetmenedzsment és adatszinkronizációs megoldást. Tesztelem folyamatosan, azt mondom, hogy 99%-os. Innen merítettem az ihletet, de több helyen belenyúltam, illetve hozzáadtam/elvettem belőle.

    Az alapgondolat az, hogy reggel 6-tól este 11-ig félóránként szinkronizálja az adatokat, ha van lehetőség preferált hálózatra kapcsolódni, akkor WIFI-n, ha pedig nincs, akkor 3G-n keresztül. Ezen kívül az akksi kímélése érdekében a képernyő lezárásától számított 1 percen belül kikapcsolja a WIFI-t (ha esetleg kikapcsolás után egyből eszembe jut még valami, akkor ne keresse feleslegesen újra a hálózatot). A képernyőzár feloldásakor futtat egy gyors hálózatkeresést, és ha nincs preferált WIFI hálózat akkor kikapcsolja a WIFI-t. Ehhez hozzátartozik, hogy nem vagyok állandóan 3G-n, hanem a megfelelő programokhoz be van állítva, hogyha a telefon nincs csatlakozva WIFI-re, akkor kapcsolja be a 3G-t, a progi bezárásakor pedig kapcsolja ki.

    Az egésznek az alapja egy WIFICHK nevű task, ami azt csinálja, hogy bekapcsolja a WIFI-t, majd 4mp múlva kiírja egy fájlba a %WIFII változó értékét, amiből aztán kiolvassa a megfelelő sorokat egy FOR ciklussal (elvileg csak egy sornak kell lennie a fájlban, mert a %WIFII a csatlakoztatott hálózatot tartalmazza, viszont az a tapasztalatom, hogyha nehezebben megy a csatlakozás, akkor a 4. másodpercben még nem feltétlen állt rá a preferált hálózatra a telefon, viszont már látszik az elérhető hálózatok listája (ami jelerősség szerint van sorba rendezve) a %WIFI változóban, és ha az első öt között megtalálja valamelyik preferált hálózatot, akkor már tuti, hogy rá fog csatlakozni. Beállítottam két változót is, az egyik a %WIFICHK, ami 2-es értéket kap, ha csatlakozott a telefon preferált hálózatra, és 1-est, ha nem, illetve a másik a %WIFICHKTSK, ami pedig a WIFICHK task indulását figyeli, ha fut a task, akkor 2-es az értéke, ha nem, akkor 1-es (ezek más taskok miatt fontosak).

    A négy profil:

    ScreenOn (a képernyő unlock-olásakor aktiválódik): a benne levő task annyit csinál, hogy a %SCRNUNLCK változó értékét 2-esre állítja (ez az AutoSync profilhoz lesz szükséges), és elindítja a fenti WIFICHK task-ot, tehát ha van a közelben preferált WIFI hálózat, akkor csatlakozik, illetve beállítja a benne említett változók értékét.

    ScreenOff (a képernyő kikapcsolásakor aktiválódik, ha a %WIFICHK értéke 2, tehát csatlakozva van WIFI-re): a benne levő task átállítja a %SCRNUNLCK értékét 1-esre, vár egy percet, és kikapcsolja a WIFI-t (%WIFICHK átáll 1-re), HA közben nem lett unlock-olva a képernyő (%SCRNUNLCK), vagy nem indult el az automatikus szinkronizálás (ezt ugyanúgy oldottam meg, mint a %WHIFCHKTSK-nál, hogy az AutoSync profil indulásakor az %AUTOSYNC változó kap egy 2-es értéket, a végén pedig 1-est). Ha kikapcsolta a WIFI-t, akkor a WIFICHK értéke 1 lesz.

    Van egy MobilData profil, ami csak annyit csinál, hogyha a 3G be van kapcsolva, akkor a %MOBD változónak ad egy 2-es értéket, ha pedig ki van kapcsolva, akkor ad neki egy 1-est (az AutoSync-nél lesz rá szükség).

    AutoSync: (06 és 23 óra között aktív): a benne levő task csak akkor indul, ha az akksi töltöttsége 20%-nál nagyobb, beállítja %AUTOSYNC változót, kitörli a telefon információs sávjára az előző szinkronizáláskor kiíratott üzenetet, beírja a %MOBDORS változóba a %MOBD értékét (ez lentebb lesz lényeges) majd elindítja a %WIFICHK taskot, amennyiben ki van kapcsolva a WIFI. Ha nem tudott felcsatlakozni, akkor aktiválja a mobilnetet, és egy percen keresztül szinkronizál. Az aktuális időt beállítja egy változóba, és amennyiben le van zárva a képernyő kikapcsolja a WIFI-t (ha be van kapcsolva a képernyő, és a WIFI, akkor úgyis használom, ha bekapcsolt képernyőnél ki van kapcsolva a WIFI, akkor úgysem kell kikapcsolni), vagy a mobilnetet (amennyiben a %MOBDORS értéke nem egyenlő kettővel, tehát a task indulása előtt nem volt bekapcsolva a mobilnet - azt még nem sikerült áthidalni, hogyha a frissítés egy perce közben indítok el egy appot, aminek szüksége van mobilnetre, akkor annál ne kapcsolja ki). Ezután már csak annyi a dolga, hogy kiírassa a frissítés típusának (WIFI/mobilnetes) megfelelő szöveget a notification bar-ra, és átállítsa az %AUTOSYNC változó értékét 1-re (amiből a ScreenOff profil látja, hogy szinkronizálás van folyamatban, és így nem kapcsolja ki a WIFI-t, ha mondjuk abban az egy percben kapcsoltam ki a telefon kijelzőjét.

    Ennyi lenne, szívesen fogadom az észrevételeket, az xml-eket feltöltöttem ide.

    Lenne egy kérdésem is: van egy köpönyeg widget-em, és a fenti sémával nem tudom lekezelni, hogy frissüljön mondjuk óránként, mert nekem ugye kikapcsolt kijelzőnél félóránként kb. egy percre nyílik meg az adatkapcsolat. Rá lehet valahogy bírni a Tasker-t arra, hogy widget-et frissítsen?

    [ Szerkesztve ]

Hozzászólok Aktív témák

Hirdetés