Androidのアプリ,Tasker/Locale から起動できるプラグインを実装するための参考情報です.

Taskerプラグインの作り方

Androidには,Tasker というアプリがあります. ここでは詳しく説明しませんが,ある条件を満たしたときにある操作を行うというアプリです.

ここで行える操作は,Taskerが標準機能として多数内蔵しているのですが, プラグインの機能を実装しているアプリであれば,そのアプリをTaskerから制御することもできます.

拙作の 山旅ロガーSmart/Tasker で, このプラグイン機能を実装してみましたので,実装についての情報について簡単にまとめます.

1129a.jpg

追記

あとでネットを調べたところ,以下のページに日本語の詳しい解説がありました.このページよりそちらを見た方がわかりやすい気がします...

実装方法の情報

といっても,以下の2つのページの情報を確認して,Locale Developerの方からダウンロードできる2つのサンプル (Display Condition,Toast)のソースを見れば,おしまいだとは思います.

TaskerプラグインはLocaleプラグインの仕様が基本になっているようでして,Localeプラグインの仕様が2つめのページ, 1つめのページはTaskerに実装されているものの差分情報になります.

Toastサンプルがシンプルですので,まずはこのソースを読むのがよいと思いますが,おおまかには以下の2点だと思います.

(1) TaskerのUIからそのアプリをTaskとして登録するときに,

 com.twofortyfouram.locale.intent.action.EDIT_SETTING
のactionのインテントが来るので,それを受けて動作設定画面を表示するActivityを実装する.

(2) TaskerでそのTaskを行う条件が発火したときに,

com.twofortyfouram.locale.intent.action.FIRE_SETTING
のactionのブロードキャストインテントが来るので,それを受け取って実Taskを行うブロードキャストレシーバを実装する.

セキュリティ

上の(2)のように,発火したときのTask発動にブロードキャストインテントを使うため, 受け取ったプラグイン側では,送信元がTaskerなのかどうかを判断できないと思います.

そのため,Tasker以外の何らかの悪意のあるアプリが発行したブロードキャストインテントによって発火されてしまうという可能性を, 防げないのではないかと思います. (そういうアプリが実際にあるかどうかはわかりませんが,可能性の話です)

このような,利用者の意図しないタイミングでプラグインが発火されてしまうということは回避しようがないと思っていまして (回避する方法があれば知りたいです), 個人的には以下の保険的対策を取っています.

  • 発火されたということをプラグインから通知バーに出して,利用者が意識できるようにする.意図しない発火であれば,通知バーで気がつくはず

また他の案として,発火のログを残して,あとで利用者が参照できるようにするのも良い気がします.


© 2024 KMIソフトウェア