ページ

2012/10/27

Android 端末情報を確認・共有するアプリ

|
Androidアプリの開発をするときに困ることの1つに、端末の種類の多さがあります。

アプリが使う機能にもよりますが、想像以上に機種間の差はあったりするので検証する端末の選定は重要です。
しかしながら、キャリアやメーカーから公開されている仕様だけでは不十分なことが多く、もっと多くの情報を収集したいものです。
端末の情報を表示するアプリは既に多数ありますが、これをサーバへ送信して皆が見られるようにするためのアプリを公開しました。
DeviceInfo

名前が普通過ぎるので、アプリ名で検索すると残念ながら多数ヒットするのですが…。

このアプリのメニューから「送信」とすると、サーバへ端末情報が送られます。
もちろん、個人を特定するような情報は送っていません。
ファイルへのエクスポートもできます。

サーバサイドのアプリは現時点で準備中ですが、下記のような一覧が見られる予定です。
あとは如何に多くの端末情報が集められるかが課題ですね。

Android Intentでテキストを共有する時のタイトル

|
たまにやるとつい忘れてしまうのでメモです。

IntentのExtraにテキストデータを入れて共有するとき、以下のようにすると思います。
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/*");
intent.putExtra(Intent.EXTRA_SUBJECT, "something");
このとき、Intent#putExtra()の第1引数がIntent.EXTRA_TITLEだとEvernoteなどはタイトルとして認識してくれますが、Gmailなどは認識しません。

メール系のアプリでもタイトルとして扱われるようにするには、Intent.EXTRA_SUBJECTとする必要があるようです。 EvernoteはIntent.EXTRA_SUBJECTでもタイトルとして扱っており、こちらの方が適用範囲が広いかもしれません。

Heroku + Node.js + Express + Mongoose

|
Heroku + Node.js + Express + Mongoose で、とあるアプリケーションを作成しているのですが、Heroku上ではどのバージョンの組み合わせが動くのか分からず嵌ってしまいました。 以下は、現時点(2012/10/26)で動作したpackage.jsonの内容です。 誰かの参考になれば幸いです。
{
  "name": "hoge",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.0.0",
    "mongoose": "1.7.4",
    "jade": "*"
  },
  "engines": {
    "npm": "1.1.41",
    "node": "0.6.13"
  }
}

2012/10/18

Android keystoreの操作

|
AndroidというよりはJDKの話ですが、前のエントリの続きのメモです。
keystoreの変更操作は、バックアップを取ってから実行した方が良いです。

■keystore内のエントリの確認方法

keytool -list -keystore keystoreファイル名 -storepass パスワード

■keystoreのキー(エントリ)のパスワード変更方法

keytool -keypasswd -alias エイリアス -keypass キーのパスワード -new キーの新しいパスワード -keystore keystoreファイル名 -storepass keystoreのパスワード
パスワードをパラメータに指定しない場合は対話形式で入力できるようです。

■keystore自体のパスワード変更方法

keytool -storepasswd -keystore keystoreファイル名 -storepass keystoreのパスワード -new keystoreの新しいパスワード
念のためですが、これらのパスワード変更をしても署名(証明書のフィンガープリント)が変わってしまうことはなく、パスワード変更前に作ったAPKに対して上書きインストールできました。

■keystore内のエントリの削除方法

例えば、いくつものアプリのキーを1つのkeystoreにまとめてしまっていて、一部のアプリを移管しないといけない場合などに必要かもしれません。
くれぐれも、必要なエントリをうっかり削除しないように気をつけてください。
keytool -delete -keystore keystoreファイル名 -alias 削除対象エントリのエイリアス -storepass keystoreのパスワード

Android keystoreのエイリアス変更方法

|

keystoreのエイリアスを変更する方法です。
keystoreを作り直せば良い話ですが「もうこのkeystoreで署名したAPKは出回ってしまってるのでkeystoreを作り直すことはできない」という場合に使えそうです。

keytool -changealias -alias 現在のエイリアス -destalias 新しいエイリアス -keystore keystoreファイル名 -storepass パスワード