Android はじめました
さて年始早々の電話のトラブルやらあれやらこれやらで、Android始めました。
auのARROWS Zとやらです。店で決めました。2ch見たらスレが燃え上がっててワロタ。
(以前のiPhoneは、電話のみ生きてて、持ってはいます。電源ボタンがひどく渋いのと電池の減りがひどい感じです。あと数ヶ月は多分出るのは出れます)
アドレス帳もひどくタイムスリップしてしまっているので、もし連絡来てないよ!って人がいましたら前の携帯に送ってください。
で、いきなりAndroidの壁に当たる。
……電池持たない。
ということで、まず遊んだりメモとかまとめるアプリとか入れる前にTaskerを入れました。
これがすごい。
簡単に言うと、電話の設定変更や「状態変更」、メッセージやら着信やらの「イベント」等に対して、一連の作業を「タスク」として行うアプリです。
要は、
★画面OFFになった
→データ通信OFF,自動シンクロOFF
★画面ONになった
→データ通信ON,自動シンクロON
なんて感じの事ができます。
これで、色々設定したところ、ちゃんと一日電池が持つようになりました。
せっかくなので、作ったものを公開します。
画面OFF後2分でデータ通信OFF
2分のゆえんは画面OFFしていきなりデータ通信がOFFになると、メール送信中でぽちっと画面を消したりしたときに困る。
ので、コネコネしてあります。
Profile: 省電力スリープ [Context] Event: Display Off State: Not Power [ Source:Any ] State: Not Variable Value [ Name:%NOECO Op:Maths: Equals Value:1 ] [Enter] A1: Perform Task [ Name:savestate Stop:Off Priority:5 %par1: %par2: Return Value Variable: ] A2: Perform Task [ Name:offdelay Stop:On Priority:5 %par1: %par2: Return Value Variable: ]
サブルーチン
BlueTooth,Wifi,WiMAXの状態を保存。
[Task]savestate A1: Variable Set [ Name:%ZBLUE To:%BLUE Do Maths:Off Append:Off ] A2: Variable Set [ Name:%ZWIFI To:%WIFI Do Maths:Off Append:Off ] A3: Variable Set [ Name:%ZWIMAX To:%WIMAX Do Maths:Off Append:Off ]
2分待って、モバイルデータ通信をOFFにして、さらに全Bluetooth,WiFi,WiMAXをOFF。
[Task]offdelay Abort Existing Task A1: Stop [ With Error:Off ] If [ %par1 ~ stop ] A2: Wait [ MS:0 Seconds:0 Minutes:2 Hours:0 Days:0 ] A3: Perform Task [ Name:moboff Stop:Off Priority:5 %par1: %par2: Return Value Variable: ] A4: Perform Task [ Name:alloff Stop:Off Priority:5 %par1: %par2: Return Value Variable: ]
さらなるサブルーチン
モバイルデータ通信OFF
[Task]moboff A1: Mobile Data [ Set:Off ]
全部OFF
[Task]alloff A1: Bluetooth [ Set:Off ] A2: WiFi [ Set:Off ] A3: WiMax [ Set:Off ]
スリープから復帰(Unlock)
・復帰時、スリープ時の状態を(できるだけ)再現する。
・復帰時、一部データのSyncを行う。
Profile: スリープオフ [Context] Event: Display Unlocked State: Not Power [ Source:Any ] [Enter] A1: Perform Task [ Name:loadstate Stop:Off Priority:5 %par1: %par2: Return Value Variable: ] A2: Perform Task [ Name:execsync Stop:Off Priority:5 %par1: %par2: Return Value Variable: ]
・サブルーチン
[Task]loadstate Abort Existing Task A1: Perform Task [ Name:offdelay Stop:Off Priority:5 %par1:stop %par2: Return Value Variable: ] A2: WiFi [ Set:Toggle ] If [ %ZWIFI !~ %WIFI ] A3: WiMax [ Set:Toggle ] If [ %ZWIMAX !~ off ] A4: Bluetooth [ Set:Toggle ] If [ %ZBLUE !~ off ]
[Task]execsync A1: Perform Task [ Name:mobon Stop:Off Priority:5 %par1: %par2: Return Value Variable: ] A2: Wait [ MS:0 Seconds:10 Minutes:0 Hours:0 Days:0 ] A3: Synker [ Configuration:Synchronize 3 providers. Continue Task After Error:On ] A4: Perform Task [ Name:moboff Stop:Off Priority:5 %par1: %par2: Return Value Variable: ] If [ %RUN+%ACC = 0 ]
[Task]mobon Abort Existing Task A1: Mobile Data [ Set:On ]
これで、画面OFF時に3分まってMobileDataをOFFに。
アンロック時にMobileDataをONにするような感じです。
画面OFFして、3分待っている間にアンロックされたときのために、synkoffdelayに再突入時、前回タスクを終わるようにAbort Existing Taskをしておいて、引数がstopの場合はそのまま終了(つまり前回タスクをキャンセルするのみ)するようにしてあります。
後は、アプリ起動時に通信が無いと困る物に関して、Enter・Exitでmobon,moboffする物とかあります。(その時に%RUNに1入れます)
最後にちょっと便利なタスクも作ったり。
・不在着信があった時、番号とその場所をGoogleカレンダーに記録する
Profile: 不在着信記録 Event: Missed Call [ Caller:* ] [Enter] A1: Get Location [ Source:Net Timeout (Seconds):80 Continue Task Immediately:Off Continue Task After Error:On ] A2: Get Location [ Source:GPS Timeout (Seconds):90 Continue Task Immediately:Off Continue Task After Error:On ] A3: Calendar Insert [ In / For (Minutes): Calendar:Google:プライベート Title:不在着信 %CONUM at %LOC(%LOCN) Description:GPS https://maps.google.co.jp/maps?q=%LOC Net https://maps.google.co.jp/maps?q=%LOCN Location: Available:Off ] A4: Mobile Data [ Set:On ] A5: Synker [ Configuration:Synchronize 1 providers. ]
落としたときにも役立ちそうですが、役立たせたくないですね。
あと、TaskerからBackupで取り出したまま載せればよかったんですが、あまりに雑念としていたので少しまとめていると、中途半端になってしまいました