AndroidアプリのTaskerをもっと使いたい!(他のアプリにデータを送るインテント機能の利用)

 AndroidアプリのTaskerを使っています。
 便利そうな反面、ちょっととっつきにくいのが難点なアプリですが、
ちょっとずつ使えるようになって来ました。

 「ボタンひとつでtwitterで定型文を送りたい。」
そんなことがやりたいと思っていました。
 はじめは、アプリを作らなきゃいけないかなと思っていました。
 Taskerを使って近いものが実現できたので、
ちょっと長い記事になってしまいましたが、手順などをシェアしたいと思います。



Taskerで作るタスクの概要

 こんなタスクを作りたいと思います。

20130323_01_task_flow.png

 図ではちょっとわかりにくいかもしれませんが、流れとして、

1.TWEET_TEXTという変数を作る。
2.朝4時以降なら、TWEET_TEXTを「おはようございます。」にする
3.昼12時以降なら、「昼だ!」にする
4.夕方17時30分以降なら、「帰宅なう」にする
5.夜22時30分以降なら、「おやすみなさい」にする
6.バイブレーション鳴らす(不要)
7.Twitterアプリに、TWEET_TEXTの中身を送る

 といった流れです。
 簡単に言うと、時間によってつぶやく文字を変えてTwitterアプリに送るタスクです。

 ここではこのタスクを作る例を紹介します。

タスクの作り方

変数を作る

まず、変数TWEET_TEXTを作ります。

 はじめに、Taskのタブで中央下の「+」のボタンを押し、出てきたダイアログで、
NewTaskのダイアログでタスク名を付けます。例:「挨拶Tweet」

 「TaskEdit」のダイアログになると思いますので、左下の「+」ボタンを押します。
(ここから、タスクの流れを1つずつ作っていくことになります。)

 すると、Select Action Categoryというダイアログがでてきて、
なんだかたくさん選べるので、ここでめげずに、「Variable」を選びます。
20130323_02_action_category_list.png

 するとまたたくさん出てきてまた諦めそうになりますが、
「Variable Set」を選びます。
20130323_03_variable_action_select.png

 ダイアログが出てきて、設定ができます。
20130323_04_variable_set.png

 ここで、

Nameに%TWEET_TEXT
Toを空白(もしくはスペース)

 を入力します。(他の項目は、わからないので無視)
 入力後、左下のチェックマークを押すと、完了です。
 これで変数設定ができ、タスクの1つめの項目ができました。

条件分岐(if)を作る

 またTaskEditの画面で、左下の「+」ボタンを押します。
 つぎは、カテゴリの中から、「Task」を選び、その後「If」を選びます。
20130323_05_task_action_select.png

 「If」では条件を決めますが、
ここでは現在時刻から判断してテキスト内容を変更したいので、
変数の%TIMEを使って条件判定します。
 朝4時以降であれば、次のように入力します
20130323_06_if_setting.png

 %TIMEには現在時刻が自動的に入っています。
 色々試してみましたが、
例えば朝4時であれば、4
夕方5時30分であれば、17.5
というような数字になっているようです。
 また、%TIMEのような特殊な変数は色々用意してあり、
オレンジのタグのようなマークのボタンを押すと、リストがずらーっと出てきて、
選ぶことで入力ができます。
20130323_07_sp_variable_select.png

 ただ、把握出来ないくらい膨大な量の変数が出てくるので、ちょっと困りますが。。
 また、条件の「>」ですが、はじめは「~」となっておりこの部分を押すと、
またリストで選ぶことができます。
 「Math:Greater Than」を選ぶと、「>」になってくれます。
 これで、条件分岐の入力が完了です。

条件文の中身を作る

 条件の中に入ったときの処理を作ります。

 ここではまたVariable Setを使い、%TWEET_TEXTに「おはようございます!」と入力します。
 その後、またIfで「%TIME>11.5」とし、
お昼の時間の動作「%TWEET_TEXT=昼だ!」、
If(%TIME>17.5)で「%TWEET_TEXT=帰宅なう」、
If(%TIME>22.5)で「%TWEET_TEXT=おやすみなさい」、
と作っていきます。

 それから大切なのが、Ifを作った分だけ、条件処理の終わりに「End If」を付けなくてはいけません。
 このあたりは実にプログラミングっぽいので、慣れている人は感覚的にわかりますが、
そうでなければ、なかなか難しいかもしれません。

Twitterアプリに文字を送る

 ここがどうするか難しかったところですが、
Androidではアプリ間でデータを共有する、インテントという機能があります。

 例えば、画像を見ている時に、共有メニューから直接メールに添付としてメーラーを起動できますが、
そういった機能のことです。
Taskerでもこのインテント(Intent)機能を使って他のアプリにデータを送ることができます。
20130323_08_misc_action_select.png

 今まで通り「+」ボタンでタスク作成から、
 カテゴリの「Misc」の「Send Intent」を選びます。
 またずらーっと設定項目がいっぱい出てきますが、諦めてはいけません。
20130323_09_action_send_setting.png

 設定する項目は、

Action : android.intent.action.SEND
Mime Type : text/plain
Extra : android.intent.extra.TEXT;%TWEET_TEXT
Package : com.twitter.android
Class : com.twitter.android.PostActivity
Target : Activity

 です。
 Extraが2つありますが、1番目のExtraのみの設定でOKです。
 また、はじめはDataに%TWEET_TEXTを入れていましたが、どうもうまくいかず、
Extraに入れなきゃいけないようです。
 (この辺りはまだよくわかっていないだけかもしれません)
 チェックマークを押して、タスク設定完了です。

 ほとんどおまじないみたいなものですが、
Androidのアプリ作っている人にとってはわかる内容かもしれません。


 以上で、タスクの作成が完了です。

タスクにアイコンをつける

 TaskEditの画面で、
右下にボタンが2つあるのがわかります。
20130323_15_icon_edit.png

 左はなんだか設定が出来そうなボタンと、
右にもう一つよくわからないボタンがあります。
 押すと、「ImageSelect」と出てきて、「Application Icon」とか「Built-In Icon」とか、
なんだかアイコン画像が選べるようです。
20130323_10_icon_select.png

 ここでは、「Application Icon」を選んでみてください。
 しばらくすると、インストールされているアプリのリストが出てきますので、
Twitterアプリを選んで、アイコンを拝借してしまいましょう。
 これでアイコンの設定が完了です。

ウィジェット機能で、ホーム画面にタスク実行のショートカットを作る

 ホーム画面でウィジェット作成します。
 ウィジェットのリストの中に、Taskerのアイコンで「Task」というものがあるので、選択
20130323_12_widget_select.png

 作ってあるタスクのリストが出てくるので、作った「挨拶tweet」を選ぶと、
20130323_13_widget_task_select.png

 ホーム上にタスク名でアイコンが出てきます。
20130323_14_icon.png

 アイコンは先ほど設定した画像です。(Twitterから拝借しました)

実行!

 実行は、ホーム画面のアイコンを押すだけです。
 押すと、Twitterの投稿画面が起動し、時間によって文章の違う内容が入力されているので、
そのまま、「ツイート」ボタンでつぶやきます。
 アイコン押して、ボタン押してと、はじめやりたかったことよりもちょっと手間ですが、
今思うと、時には定型文に追加でテキスト入力したりするので、これはこれでありかなと思っています。



 いろいろ遊べそうなTaskerですが、
なかなか思うようにはいかなかったりで難しい。
 もっと情報が増えてくると良いなーと思います。


関連記事