POBox専用Plug-inを作ってみた

昨日、m猿頁 » Blog Archiv » POBoxのフリック入力から設定画面を呼び出す で「POBox設定」というマッシュルーム ( Android スマートフォンの IME Simeji / POBox Touch から呼び出せる拡張機能 ) を公開してみました。

いや、ほんと単純単機能なアプリで。
フリック入力画面 → [顔文字]キー長押し → 「POBox設定」押し → POBox設定画面表示、ってだけのものです。
POBox の UI だとフリック入力から設定画面を呼び出す手段がなく、毎度毎度 qwerty 入力画面に切り替えなきゃならないのがめんどくさくなって勢いで作ったんですね。

で、なんでマッシュルームかというと、POBox から自作のアプリを組み込める拡張手段がここしかなかったからなんです。

でもマッシュルームってのはもともとフリーの IME 「Simeji」が策定した Simeji 用拡張仕様なので、POBox からも呼び出せますが、当然 Simejiからも呼び出せるわけです。

Simeji から呼び出す POBox 設定画面、ってむっちゃ意味がないではありませんか。

一方、Sony Ericsson から提供されている POBox 専用 Plug-in は、Simeji では認識しないように作られています。
ってことは、マッシュルームとは別に「俺はPOBox 専用 Plug-in だぞー」と名乗る方法があるんではないかと思うわけです。

ので、ちょっと調べてみました。


まず、「俺は Simeji 用マッシュルームだぞー」と名乗る方法について。

Simeji の作者 adamrocker さんの blog で、マッシュルームの仕様とかスケルトンとかががっちり公開されていますので、throw Life – マッシュルーム を読めば作り方は割と簡単にわかります。

Simeji 側に「お、これマッシュルームだ」と認識してもらうには、AndroidManifest.xml に intent-filter を追加して

<intent-filter>
    <action android:name="com.adamrocker.android.simeji.ACTION_INTERCEPT" />
    <category android:name="com.adamrocker.android.simeji.REPLACE" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

アクティビティ側で

private static final String ACTION_INTERCEPT = "com.adamrocker.android.simeji.ACTION_INTERCEPT";
    …
if (action != null && ACTION_INTERCEPT.equals(action)) {

な感じでインテントをひっかけるというか振り分けるというかな感じで実行させれば OKOK みたいです。

てことは、POBox 専用 Plug-in の場合はこのフィルタ指定が変更になっているのではないかと推測できます。
で、実際に調べてみた結果

<intent-filter>
    <action android:name="com.sonyericsson.android.POBox.ACTION" />
    <category android:name="com.sonyericsson.android.POBox.CATEGORY" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

ってインテントフィルタになってました。
これに合わせてアクティビティ側も

private static final String ACTION_INTERCEPT = "com.sonyericsson.android.POBox.ACTION";
    …
if (action != null && ACTION_INTERCEPT.equals(action)) {

としてやればいいようですね。


ということで、先ほど「POBox設定」を v1.1 にアップグレードして差し替えました。
Simeji 用マッシュルームから POBox 専用 Plug-in としての提供となります。
まあニッチニーズだとは思いますが、一度試してみていただければ幸いです。

コメントを投稿