MRyasの打撃オンライン

はまっているゲームのネタを中心に、言いたい放題。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

TaskerでJavaを使う

TaskerがJava(スクリプトではない)に対応したのは結構前なのだが,使い方にかなり癖があるため,Userguide の該当項目を読んでも最初は全く訳が分からなかった.

試行錯誤で何とか使えるようになったので四苦八苦してやった作業をメモしておく.
わかりやすい解説ではないが,同じように悩んで居る人が見たら役に立つ,かも?w
でも,まだ解らない事が有るので誰か教えてくれないかのう.
Userguideを読めば解る事なのかもしれない.でも解らなくて,試行錯誤で理解出来た時に「そう言う事だったのか!」と思った事ですw

まず,Actionの追加,Taskの編集で「Code」→「Java Function」を選ぶと「Action Edit」の「Java Function」が表示される.
この画面で「Class Or Object」の入力欄に「Optional」とか表示されているのがいけない,最初は盛大に勘違いした.
(Java自体を余り理解していないことも理由かもしれないがw)
Action Edit: Java Function
俺が理解出来たのは,TaskerのJava Functionはオブジェクトやクラスのメソッドを使った処理を記述していくアクション.
まずはクラスかオブジェクトを指定してやらないと始まらない.AndroidのAPI(?)には,アクティビティのメソッドとしてしか用意されていないものもあり,そこでTaskerが用意した「CONTEXT」オブジェクトを使う.

以下にBluetoothのAPIを使おうとしたときの例です.
まず,「getSystemService」に文字列「bluetooth」を設定したTasker変数%serviceを渡してBluetoothManagerのオブジェクトを取得する.

「Class Or Object」の右側にあるコーヒーカップのアイコンを押すと使える選択肢が表示されるので「CONTEXT」を選択.自分で入力しても良いけどw

次に「Function」の横の拡大鏡アイコンを押すと「CONTEXT」で使えるメソッドの一覧が出るので「getSystemService」を選択する.すると編集画面に入力フィールドが増えます!
Tasker Action Edit: Java Function(getSystemService)
スクリーンショットの通り,Fuctionには二行追加されているのですが,
一行目:呼び出すメソッド名
二行目:戻り値 および 引数 の宣言.戻り値は「{}」で,引数は「()」を「,」区切りで指定されています.
この二行目に従い,一番上に「Return {Object}」入力欄とFunctionの下に「Param (String)」入力欄が追加される仕組み.

ここでやっと得心が行ったのであとは入力するだけ.
Tasker Action Edit: Java Function(getSystemService2)
入力例です.
ポイントとしては,戻り値は%を付ければTasker変数に格納されるし,スクリーンショットの様に%を付けなければTask内で使えるJavaのオブジェクトになる.今回例のCONTEXT.getSystemService(String)は渡される引数によって,戻り値の型が変わるため,明示的に型指定(BluetoothManager)を設定した.設定しなくても問題は無いけど,この後でbtmanのメソッドを使う時に,コーヒーカップアイコンで選択肢を表示してくれないのは不便なのでw

説明は以上ですが,解ってしまえば簡単なこと.

そのうち,今使っているNECのMR03LNを休止状態から復帰させる方法でも書くかも.

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://mryas.blog64.fc2.com/tb.php/377-36a476d3
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。