2014年02月05日
お久しぶりです。昨日は突然雪が降って驚きました。
さて今回はAndroidアプリ「Tasker」のちょっと便利な(?)使い方をご紹介します。
Taskerはある条件が満たされるときに自動的に操作を実行してくれるツールで、
例えば「WiFiが接続された時にマナーモードをオフにする」とか、
「あるアプリが起動した時には画面の向きのロックを外す」とかいったことを指定しておけば、
Taskerは常に監視してそのタスクを実行してくれます。
今回は、時刻に合わせて自動的に壁紙を変更するということをやってみたいと思います。
でもただ時刻に合わせて変わるだけでは面白く無いので、
毎日の日の出と日の入りの時間を取得し、それをもとに壁紙の変更時刻が日によって変わるようにしたいと思います。
さっそくプログラムを組んでいきます。
さて今回はAndroidアプリ「Tasker」のちょっと便利な(?)使い方をご紹介します。
Taskerはある条件が満たされるときに自動的に操作を実行してくれるツールで、
例えば「WiFiが接続された時にマナーモードをオフにする」とか、
「あるアプリが起動した時には画面の向きのロックを外す」とかいったことを指定しておけば、
Taskerは常に監視してそのタスクを実行してくれます。
今回は、時刻に合わせて自動的に壁紙を変更するということをやってみたいと思います。
でもただ時刻に合わせて変わるだけでは面白く無いので、
毎日の日の出と日の入りの時間を取得し、それをもとに壁紙の変更時刻が日によって変わるようにしたいと思います。
さっそくプログラムを組んでいきます。
プログラム自体はダウンロードできるようにしておくので、ここでは流れだけ説明しようと思います。
ここからダウンロードできます。
<一日一回行う処理>
①ロケーションの取得
変数%LOCNを使って端末の緯度経度を取得します。後で使いやすいように2つの変数に分割します。
②日付の取得
変数%DATEで月日を取得します。
③日の出・日の入りの時刻の取得
http://www.earthtools.org/ にアクセスして①②の情報をもとに日の出と日の入の時刻をXML形式で取得します。
④情報の抽出
XMLファイルの中で日の出と日の入りの時刻が記述されている部分を抜き出し、変数に格納します。
⑤壁紙の変更時刻を設定
壁紙の時刻を変える時刻を設定していきます。
ここでは日の出・日の入りのそれぞれ1時間前と後、計4回変更するようにしています。
なお、あとで扱いやすいように時刻の形式は分単位に直しています。(0~2400)
⑥壁紙の種類を変更
毎日同じ壁紙ではつまらないので数種類の中からランダムで毎日変わるようにしています。
同じ壁紙が連日にならないように処理を入れています。
<画面がオンになる度に行う処理>
①現在時刻の取得
変数%TIMEで現在時刻を取得し、分単位に直します。
②時刻の比較
現在時刻が4つのパターンのうちどれに該当するか、大小関係を比較します。
③壁紙変更
もし時刻があるパターンに該当し、かつ壁紙が正しいものになっていないとき、壁紙を変更します。
ここからダウンロードできます。
<一日一回行う処理>
①ロケーションの取得
変数%LOCNを使って端末の緯度経度を取得します。後で使いやすいように2つの変数に分割します。
②日付の取得
変数%DATEで月日を取得します。
③日の出・日の入りの時刻の取得
http://www.earthtools.org/ にアクセスして①②の情報をもとに日の出と日の入の時刻をXML形式で取得します。
④情報の抽出
XMLファイルの中で日の出と日の入りの時刻が記述されている部分を抜き出し、変数に格納します。
⑤壁紙の変更時刻を設定
壁紙の時刻を変える時刻を設定していきます。
ここでは日の出・日の入りのそれぞれ1時間前と後、計4回変更するようにしています。
なお、あとで扱いやすいように時刻の形式は分単位に直しています。(0~2400)
⑥壁紙の種類を変更
毎日同じ壁紙ではつまらないので数種類の中からランダムで毎日変わるようにしています。
同じ壁紙が連日にならないように処理を入れています。
<画面がオンになる度に行う処理>
①現在時刻の取得
変数%TIMEで現在時刻を取得し、分単位に直します。
②時刻の比較
現在時刻が4つのパターンのうちどれに該当するか、大小関係を比較します。
③壁紙変更
もし時刻があるパターンに該当し、かつ壁紙が正しいものになっていないとき、壁紙を変更します。