2011年2月6日日曜日

マッシュルームアプリとかキャンディアプリを作ってみた

やっぱりAndroidのIMEはシメジですよね~
いつも大変お世話になっております。

ところで最近の和製Android端末なら赤外線モジュール積んでいるんで、アドレス交換とかも楽ですが、
よく考えなくてもDesireさんにはそんなモノありません(´;ω;`)

で、そうするとどうなるか。

  • 昔ながらのメールで連絡先送るね~
になります。

よね?

そう、自分の電話番号をマッシュルームで呼び出せば便利じゃね?

ってことで今更ながら、マッシュルームアプリを作ってみました。


細かい詳細はadamrockerさんのサイトへ

まずは、上記サイトを読んだ上で、作ってくれている「MushroomTemplate」を参考に…というかほぼコピーというか…

public class MyInfo extends Activity {

 private static final String ACTION_INTERCEPT = "com.adamrocker.android.simeji.ACTION_INTERCEPT";
 private static final String REPLACE_KEY = "replace_key";

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  Intent it = getIntent();
  String action = it.getAction();
  // Simejiからの呼び出し
  if (action != null && ACTION_INTERCEPT.equals(action)) {
   replace( _getMyTelNum());

   return;
  }
  //setContentView(R.layout.main);
  finish();
 }


 /**
  * 元の文字を置き換える
  * @param result Replacing string
  */
 private void replace(String result) {
  Intent data = new Intent();
  data.putExtra(REPLACE_KEY, result);
  setResult(RESULT_OK, data);
  finish();
 }

 /**
  * 自分の電話番号取得
  * @return 電話番号文字列
  */
 private String _getMyTelNum(){
  TelephonyManager ts = null;
  String returnStr = null;

  // エラーチェックとかはとりあえず無視
  ts = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
  returnStr = ts.getLine1Number();

  return returnStr;
 }

}

もとの文字列を置き換えるもなにも、欲しいのは電話番号だけなので、入力されてきた文字列なんて無視です。(ぉぃ)

ちゃんと作るなら、メソッド内でエラーチェックしたりなんだりしますが、メンドイのでその辺も放置

Androidで自分の電話番号を取得する為にはTelephonyManagerを使うため、マニフェストに
・< uses-permission android:name="android.permission.READ_PHONE_STATE" />
の記述(パーミッションの指定)を忘れずに

とりあえず実際に動かしてみます。

とりあえず何か入力する画面にカーソルを合わせ…



おもむろにシメジボタンを押すと、味気ない標準のアイコンとセンスのないアプリ名Topに出てくるw



とりあえず押して見るとちゃんと電話番号が!



流石にこれだけじゃつまんないので、ついでにキャンディー化してみましょう。

public class MyInfo extends Activity {

 // マッシュルーム
 private static final String ACTION_INTERCEPT = "com.adamrocker.android.simeji.ACTION_INTERCEPT";
 private static final String REPLACE_KEY = "replace_key";

 // キャンディ
 private static final String ACTION_INJECTION = "com.adamrocker.android.simeji.ACTION_INJECTION";
 private static final String CANDITATE_KYE = "candidate_key";

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  Intent it = getIntent();
  String action = it.getAction();
  // Simejiからの呼び出し
  if (action != null && ACTION_INTERCEPT.equals(action)) {
   replace( _getMyTelNum());
   return;

  }else if(action != null && ACTION_INJECTION.equals(action)){
   _canditate();
   return;
  }
  //setContentView(R.layout.main);
  finish();
 }

 // 中略

 /**
  * 文字配列の返却
  */
 private void _canditate(){
  ArrayList telnums = null;
  JSONArray jsons = null;
  Intent data = new Intent();
  String myInfo = null;
  String telhead = null;
  String telbody1 = null;
  String telbody2 = null;

  myInfo = _getMyTelNum();

  telhead = myInfo.substring(0, 3);
  telbody1 = myInfo.substring(3, 7);
  telbody2 = myInfo.substring(7, 11);

  telnums = new ArrayList();
  telnums.add(myInfo);
  telnums.add(telhead + "-" + telbody1 + telbody2);
  telnums.add(telhead + "-" + telbody1 + "-" + telbody2);

  jsons = new JSONArray(telnums);
  data.putExtra(CANDITATE_KYE, jsons.toString());

  setResult(RESULT_OK, data);
  finish();//キャンディーを終了して複数の文字をSimejiに渡す
 }

}

上の方のソースにちょっと足して変更しただけ。

あとはマニフェスト上にキャンディ用のインテントフィルタを追加するのを忘れずに

何か入力する画面にカーソルを合わせ…



おもむろに「+」ボタン(「ま」の下)を押すと、さっきと同じアプリ名がTopに出てくる



とりあえず押して見ると今度は変換候補に電話番号が!




とまあ、すごく簡単にIME拡張出来ましたw
これもステキなIMEソフトを無料で提供してくれているadamrockerさんのお陰です。

そしてやっぱりAndroidは面白い。

家でプログラムヤル気になるしね。

どう考えても BREWとかBREWとかBREWとか…は…、家でヤル気になんね~し…

→コンパイル環境も家にはないけど…

2011年2月5日土曜日

中華オーディオ付けてみた

主に…

というか、ほぼミニバイクを運ぶためだけに買った、ホンダ バモスホビオ プロ。

軽貨物というステキなカテゴリ車。
自動車税に至っては、400cc~バイクと同じ4000円!

というわけで、全く大事に扱っていません。

購入してはや2年が経過しそうですが…

洗車したのは1回だけ。
それもバイクの洗車のついでwww

そんな彼ですが、常に某先輩から
「ラジオだけってのは…オーディオくらい付けなよ~w」
と圧力を受け続けていました。

といってもこの車、うちとサーキットの往復が主な使用方法で、
快適に過ごすなんてどうでもよかったんで、右から左に受け流していましたが…

今年別の先輩の180sxのオーディオが、
・USB/フロントAUX/iPod 対応 と成っているのに気がついて…

あ、1DINのオーディオってこんなに進んでいたんだ!
ってことに気が付きました(ぉぃ)
もうね、USBって端子が居るだけで思いつくのが…

Desire充電出来るじゃん!!!

はい、ここポイントですよ~。
テストには出ないけど。

これでシガーソケットから引っ張ってこなくても(・∀・)イイ!!というのが素晴らしい!
USB端子のお陰でオーディオ購入意欲が湧くってのはどうかと思いますが…

んで、久しぶりにヤフオクにてちょろちょろ見てたら…

中華オーディオなんてものが存在していました。

所詮荷車です。
音質なんてそこまで拘らない!
安くて使えればいい!
まさに俺向け!!!

で買ったのがこれ

ヤフオクで買えば、4~5千円 と送料で買えます。
もちろん新品。

参考までに私は送料込みで4500円切りましたよw


と、お安く買えました自慢が目的ではないです。
早速付けましょう。

まず箱を開ける。
中華と言えども流石にパッケージはしっかりしているw



中身をチェック。
なぜいきなり配線が汚れているのか…とかは無視。中華だし(゚ε゚)キニシナイ!!




取り付けの説明書を見る


あれ?


取説と実物が違う…

まあ、どうやら取説がおかしいようです。
ヤフオクの商品説明画像と、実物が一致しているので…
おや?


何の説明もない…
多分AUX INでしょうけど…

これがあるならフロントAUXと入力は区別されるのだろうか…

上記画像を添えて取り敢えず問い合わせた結果
お世話になります、ライティングワールドでございます。

メールいただきました。

取り付け説明書について、メーカー共通なものでございます。他の似たような製品が

あるみたいです。実際お客様の落札商品に関して、詳しくは製品本体上部分に張って

いるシールを参考にしてください。よろしくお願いします。

ちなみに、後ろ部分の差込口は音声入力です。

ふむ、想定通り…でいいのかな…

まあいいか、中華クオリティだしwww

詳しくは製品本体上部分に張っているシールを参考にしてください。





うん、破れてる…

本当はちゃんとこの写真の直後に取れば良かったんだけど、忘れてましたw

まあ、わかるからいいか。

所詮中華です。これくらいで慌てるような方は購入をお控えください。
むしろ、ぶっちゃけどうでもいい質問に返答をくれているだけプラス評価ですw
だって純正のオーディオ配線とつなぐわけで、上記の配線一切使わねーしww
如何にも高出力用のものに用はないw

むしろGIVIみたいなクソメーカーのボルトに比べれば、なんてことはない。

中華HIDも乗り切った俺に死角はない!

ハズ。

とりあえず、届いたその日に配線キットとの配線、通電チェックまでは済ませました。


で、本日。
まず、元々のオーディオを外します。



元々付いてたオーディオ
いまどきカセットとラジオのみだぜ!!







新しいのと並べてみる


取り付けて動かしておしまい。



とりあえず順調に動いています。
流石に貨物用の純正オーディオよりは相当マシな気がしました。

ただし、USB経由でDesire内の楽曲は読み取れず…
SDカード内の配置の問題か、それともカードサイズが大きすぎるのか…
ちなみにDesireにて使用しているmicroSDは16GBものです。

あ、充電は当然出来ましたよ。
そしてソロソロ新しい、圧着工具が欲しい…