Android:BatteryCrystal 2.0.2リリースと、自転車備品マネージャをリリース

BatteryCrystal 2.0.2に、充電が完了しても何度も音が鳴るというバグがあることがtwitter上で発覚!そんなバカな!と思っていたのですが、完全に自分のプログラミングミスでした…(-_-;)不具合の修正をするために、処理の順番を変えていたので(処理のアルゴリズム自体は変えず)、それが影響していた模様でした。はぁ〜、情けない…。でもおかげで迅速にバグ修正して対応することができたので本当によかったです。自分では気付けないバグって一杯ありますね。

あと、自転車備品マネージャーというAndroidアプリをリリースしました。これは、自転車の備品を管理するためのアプリです。自転車の備品ってなんだかんだでたくさんあるし、こだわればこだわるほど、いっぱいになるし、知識も必要になります。でもそんなの覚えていられないので、アプリで管理しようと思って作りました。

パーツ名や商品名を登録して管理するのですが、いちいち自分で入力していくのは面倒なので、楽天商品検索WebAPIを使って商品名や商品の特徴を引っ張ってくるようにしました。これが非常に便利!自分で打たなくてもいいからw

あと、このアプリ経由で検索してブラウザを起動し、備品を買う事もできます。何気にこれが便利な機能かなと。手の平の上で備品の補充(の注文)ができる。これはすごい。自画自賛ですが。

自転車乗りの皆さんの自転車ライフが楽しくなるアプリが作れたかな〜と思ってます。
よかったらDLして使ってみて下さい!!


自転車備品マネージャー


Android:BatteryCrystal 2.0.1にアップデートしました。

ここのところ、新しいアプリや案件のアプリをこなしていて、既存のアプリのバグ修正等が手がけられていなかったのですが、ようやく、BatteryCrystalのバグを修正しました。端末起動時にバッテリーウィジェットの表示が0になるというバグです。0になる理由がさっぱりわからなかったのですが、今もよくわかっていません。原因はわかったので、直せたのですが、理論的にはならんだろうというか…。

ACTION_BATTERY_CHANGEDをBroadcastで受け取って、BroadcastReceiverでウィジェットの描画処理を行っていたのですが、その処理をReceiverじゃなくてServiceに任せるようにしたら、直ったという…。未だに謎です。ただ、以前にReceiverはServiceとかを起動させるためのフックだけにして、処理自体は書かないほうがいいと聞いたことがあったので、それが関係しているのかもしれません(でもそんなに重い処理してないと思うんだけど…。描画自体が重い?)

なんにせよ、バグ修正ができてよかったです。


Android:Nexus Sのフォントを入れ替えた

※先に書いておきますが、この記事の通りに作業を行って、あなたのNexus Sやその他Android端末が起動しなくなったり、おかしな挙動をするようになったとして、私は一切責任をとりません。root化を伴う場合の作業は、全て自己責任です。メーカーの保証もなくなります。それを覚悟した上で、もしそれでもやりたいという場合のみ、作業をしてください。

Nexus Sを手にいれました。そして数日使ってみて、やっぱりフォントが嫌だなぁと思ったので、入れ替えてみることにしました。ただし、フォントの入れ替えはroot化を必要にしたりなど、結構リスクがある作業です…。フォントくらい簡単に入れ替えることできてもいいのになとちょっと思いますね…。

参考にしたサイトなどは以下に。

あと、この作業を行った際の環境はMacOSX SnowLeopard(10.6.6)です。
また、作業を行うと、現在のNexus Sのデータは全部消えます。その点ご注意を。

  1. まずrootを取るために、Superbootを使います。以下のサイトからDLしてください。
    http://android.modaco.com/content/google-nexus-s-nexuss-modaco-com/327000/24-jan-grh78c-superboot-rooting-the-nexus-s/
    GRH78のほうを使いました。
  2. DLしたzipを解凍します。
  3. Nexus Sの電源を切った後、ボリュームの+ボタンを押しながら、電源を入れます。fast bootloader画面を開きます。
  4. USBでMacに接続します。
  5. ターミナルを開き、Superbootを解凍したディレクトリにcdコマンドで移動します。
  6. Nexus Sのアンロックを行います。まず、ターミナルより chmod +x fastboot-mac を入力し、fastboot-macに実行権限をもたせます。その後、 ./fastboot-mac oem unlock を実行します。すると、本当にロックを解除していいのか?という画面がNexus S側に表示されますので、本当にしてもいい!と思う場合はボリュームボタンで選択を移動させて、電源ボタンで決定してください。
  7. 再び、Nexus Sのfast bootloader画面を開きます。ターミナルより、 chmod +x install-superboot-mac.sh を行い、実行権限をもたせます。その後、 ./install-superboot-mac.sh を実行します。(今まで入っていたデータはここで消える)
  8. Nexus Sが再起動します。初期化されてるので、Googleアカウント設定を行います。
  9. (私の場合、実はここでGoogleアカウント設定が通らず、図らずもやってしまったのか感が流れて、精神的に深いダメージを受けましたが、寝て起きてから再チャレンジしたら普通にGoogleアカウント登録できました。)
  10. Androidマーケットから、ROM Managerをインストールし、「ClockworkMod Recoveryを導入」を選択。「Google Nexus S」をタップします。(要root)
  11. Androidマーケットから、Busyboxのインストールを行います。DL後にBusyboxインストールを起動し、インストールしておきます。(要root)

ここまでがroot化でした。Googleアカウントでうまくいかなかったので心折れて寝ましたが、起きたらうまくいきました(理由はわからん。ネットワークの不調か、Google側のメンテナンス?)。

次にフォントの入れ替えです。フォントの入れ替えに関しては、

Nexus Sのフォントを入れ替える ミサワのブログ

を行っただけですので、こちらをご参照ください。

以上です。くれぐれも、自己責任でお願いします!!


Android:現在のバッテリーの状態を取得する

BatteryCrystalで、端末起動時の表示がバグっているようなので、起動したときの値を取得してそれを表示すればよいのかと思い、調査中。ツイッターで質問したところ、@yyaammaaさんから教えて頂いたページの方法で、現在のバッテリーの状態が取れました!

教えていただいたページはこちら。この3つ目。

public int getBatteryLevel() {
    Intent bat = context.registerReceiver(null,
            new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    int level = bat.getIntExtra("level", 0); 
    int scale = bat.getIntExtra("scale", 100); 
    return level * 100 / scale;
}

registerReceiverで、登録するレシーバをnullにして結果をIntentで受け取るんですね〜!こんな方法があったとは…。なるべく早めにBatteryCrystalを直せるように頑張ろうと思います!


日記:OSC香川2011に行ってきました。

先週の土曜日になりますが、OSC香川2011に参加してきました。日本Androidの会 四国支部のブースにスタッフとして参加です。支部長の車に便乗して愛媛からは4人参加。
今回はDoCoMoさんのご協力でDoCoMoから販売されているAndroid端末を展示、実際に触ってもらおうというところでした。あと、四国支部で作ったトートバッグのアピールなど。それとイケメンデベロッパー時計に写ってくれる人を探す!という別目的もあり。

場所はサンポート高松の4階と5階でした。自分たちのブースは4階。
来て早々、話を聴きたかったので、WordPressの話を聞きに行ってきました。
講演の後、WordPressのTシャツ争奪じゃんけん大会で早々に負けてしまったのですが、うちでやってる勉強会に参加してくれてるesperia09くんが見事勝利!Tシャツをゲット!

その後、ブラブラと5階の展示などを見たり聴いたり。WordPressのシールをもらったり、FireBird 2.5のCDをもらったりしました。FireBirdはデータベースなんですが、速度が速い!しかし対応しているCMSがDrupalだけらしいです。うーむ残念。Drupal以外のCMS作ったら普及するんじゃないか!?とちょっと思ったのですが、時間ができたらやってみたいですね!

そして四国支部のブースに戻る。隣は僕も参加している瀬戸内Androidデベロッパー倶楽部のブース。なぜかiPadとiPhoneが混ざっている。一応僕たちが個人で開発したアプリを紹介するアプリを紹介(だんだんわけわからんように…)。端的にいうとアプリカタログですね。

それと、プログラマの人達が来たらAndroidアプリ開発楽しいよ!と瀬戸デ部に勧誘。オススメのアプリは瀬戸デ部の人が開発したアプリではなく、ShakeDroidという…。まぁわからなくもない(^_^;)

そして四国支部のブースではトートバッグの受付。販売はしてはいけないイベントだったので、予約で。

あとDoCoMoの端末があったので、やっぱりAndroidに興味のある人達は多いみたいで、Galaxy SやREGZA Phone、Lynx 3D、そしてDoCoMoのじゃないけどNexus S!を見ていってました。3Dは確かに3Dに見えるのはスゴイけれど、目が異常に疲れる…気がする。

PHPの講演を聴きにいくつもりだったのに、ブースのお留守番していたらすっかり時間が過ぎていて、講演という講演はまったく聴けず!!代わりにGTUGのブースで雑談したり、MozillaのブースでFirefoxのグッズもらったりしてました。ふぉくすけかわいいぞ!!

そして、ブースの撤去を急いでやったあと、最後のLT大会。
LT名物のドラ娘が、なんとドラ娘ならぬイカ娘の登場!!

「OSC香川を侵略するでゲソー!!」

という声で盛り上がる。

そして、LT開始。スタートはAndroidの会 四国支部長のかねひささんのAndroidは来てるのか?というお話。一部で来ている!そうです。(すごく実感があるー…)

次がFirebirdの会の林さん。愛媛に来られた時にお話聴いた事あります!ものすごくテンポよく、笑い要素が詰まったLT!!そして最後にFirebird徹底入門を競ってのじゃんけん大会。また負けた!!まあ持ってるけど!!(^_^;)ちなみにこのじゃんけんは四国支部のdr_covaさんが勝ってた!四国支部のメンバー、じゃんけん強いな!!

そして、四国支部 兼 女子部のmenmi_gさんが、トートバッグができた経緯をLT。緊張しているのが伝わってきたw 良いアピールができたんじゃないかなと思います!!

そして最後にイカ娘とお土産争奪じゃんけん大会!香川だけあってお土産は高級うどん!そして一発で負けた(T-T)今回はじゃんけん運がなさすぎる!!

その後、四国支部と瀬戸デ部の人達と雑談して解散。帰りにうどん食った!やっぱり香川はうどん!!とても楽しい1日でした。参加したみなさん、来て下さった皆さん、OSC香川のスタッフの皆さん、お疲れ様でした!ありがとうございました!!