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で取り出したまま載せればよかったんですが、あまりに雑念としていたので少しまとめていると、中途半端になってしまいました