Taskerによる節電設定

前回、Taskerを入れてから、IS03の電池がもつようになったと書いた。Taskerは、Androidの端末の機能をプログラムで制御するアプリだ。有料(約500円)でマニュアルが全て英語ということで若干敷居が高く感じられるが、実際はそれほど難しくない。今回は、

  1. スリープ状態にしたときに、30秒後に3G通信と同期をOFFにする(メール送信直後にスリープにした場合等、タスクが完了するまで少し遅らせる)
  2. 10分に1回、1分間3G通信と同期をONにし、Mailを受信
  3. スリープ状態から復帰した時に3G通信と同期をONにする

という一連の操作をさせている。

この流れは、基本的にはいしのなかにいるの“Android端末の節電に挑戦。Taskerの使い方その2”の記事内容を全面的に参考にさせていただいたのだが、不具合が出たので少し修正して使っている。

オリジナルの設定では、スリープ状態にした直後(ContextsがDisplay offになったとき)、しばらくは3G通信と同期がOFFになっていない。そのタイミングでスリープを解除した場合、3G通信と同期はON状態のままなので何も変化がない。しかし、3G通信と同期がOFFになるタスクがまだ完了していないので、スリープを解除してディスプレイがONになった状態で使い続けていたとしても、最初にスリープ状態にしてから所定時間経過後(オリジナルの設定では3分後、上記の設定では30秒後)、3G通信と同期が自動でOFFになってしまうのだ。

これを防ぐために、所定時間経過後、3G通信と同期をOFFにする際に、%ECOSLEEP = 1 の判定を入れるようにした。スリープを解除した時点で、%ECOSLEEP変数がクリアされるので、3G通信と同期をOFFにしてしまう誤動作を防止できる。(なお、変数はもとの記事と全く同じにしている)

あともう一つ、IS03においてうまく動作しない点があった。スリープ中に10分に1回、3G通信と同期をONにしているのだが、Ezwebのキャリアメールがうまく受信できないのだ。同期がOFFになっているタイミングで入ってきたメールはサーバに蓄積されるようだが、同期をONにしただけではダメだった。アプリを立ち上げて、新着受信のボタンをタップしてやらないとサーバに読みに行かないようだ。あるいはいったん電源を切って再起動すればサーバに読みに行くようだが、いちいちそんなことをしていられない。

そこで次善の策だが、キャリアメールを全てGmailに転送するようにした。IS03Gmailアプリは、3G通信・同期をONにしてやれば問題なくメールを受信してくれるので、特に大きな問題はない。

以上、Taskerは使いこなせば、もっと色々なことができそうだが、今のところあまりやりたいことがないので、この程度しか使っていない。

ところで、上記のような省電力設定をするアプリは既に存在する。例えば、ecoNetBatteryFreeとか、GreenPowerがそれだ。使ったことはないのだが、いずれも無料版が存在する。またどうやっているかわからないが、キャリアメールの自動受信にもうまく対応しているようだ(レビューを見る限り)。他の機能が必要ない場合はこちらの方がシンプルで良いかもしれない。