Android

ApacheのSNIはAndroidブラウザで使えない

Apacheの2.2.12からSNIが搭載され、1つのサーバでVirtualHost別のSSL証明書が使用出来るようになりました。 http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI これは大変よろしくて、ブラウザのサポート状況もWindowsXPを除く主要ブラウザで利用可能…

ピンチイン、アウト可能なImageVIewを作ってみた

Android標準のビューはiPhoneのようなピンチイン/アウトをサポートしてません。実現したければ自前で実装する必要があります。 Web上を探してみたけどしっくりくる物が無かったので作ってみました。簡単そうだけど考える事が多くて大変です。 ソースとサンプ…

WebViewで動的に画像を設定する方法

WebViewに画像を表示する場合、静的に決まっている画像であればassetsに放り込んでfile:///android_asset/のURLでimgタグを作れば良いのですが、編集した画像だったりをJavaから設定したい場合にはdata:imageスキームを使う事で実現出来ます。 <img src="data:image/png;base64,%s">こんなHTMLを…

In-app Billingでsignatureの検証をサーバサイドで行う

Androidのアプリ内課金を安全に使うためには何らかの防御策を取らないといけないのですが、その方法の一つとしてsignatureの検証があります。 購入完了後にMarketから購入情報がjsonで送信されてきます。 {"nonce":2102159826496562602,"orders":[{"notifica…

In-app Billingの問題点

正式に公開されたものの良い噂を聞かないですね。色々触ってみて発見した問題点を思いつく限り書いてみます。 2011年4月24日時点の情報です。進化が早いので最新情報は公式ドキュメントを参照して下さい。 情報が少ない http://developer.android.com/guide/…

初期データの投入方法

いやお久しぶりです。データの管理にSQLiteを使うとして、初期データを作るのに、数テーブル、数件程度のデータであれば SQLiteOpenHelperのonCreate内に直接SQLを書いてやれば良いですが、 数百件にもなるとそうも言ってられなくなります。方法としては、SQ…

CUIのみでAndroidの開発環境を作る

何の役に立つのか疑問ですが、一貫した情報が無くハマりポイントが多かったので書いときます。 環境はさくらのVPS上に作りました。正真正銘のCUIです。 http://vps.sakura.ad.jp/ 最小構成でインストールしたCentOSに、カーネルは2.6.18-194.8.1.el5 x86_64…

CopiPeバージョンアップ

Androidアプリの「CopiPe」バージョン2.0をリリースしました。http://www.matabii.com/copipe/ 今回の目玉機能は現在日時のコピー機能です。Excelの日付書式のように「yyyy/MM/dd」等と登録しておけば、現在日時をその形に合わせてクリップボードにコピーし…

シンプルなフッターレイアウトの作り方

設定画面やダイアログで、下のようなボタンが2つ並んだフッターを付ける時に使ってるレイアウトxmlを紹介します。 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > </relativelayout>

CopiPeバージョン1.4

AndroidアプリのCopiPeをバージョンアップしました。変更点は以下の通りです。 Xperia等、画面サイズの大きな端末でフリーズする現象を修正(半透明なウインドウが原因だったので止めました) Xperiaで頻繁に固まると言う情報をいただいており原因を調査した…

CopiPeその後

去年に制作したAndroidアプリの「CopiPe」が窓の杜で紹介されました。 http://www.forest.impress.co.jp/docs/special/20100126_344804.html 使ってくれる人も1万人に近づいていて要望メールなども頂いているので、smart.fmのアプリと合わせてバージョンアッ…

データベースをアップグレードする時

SQLiteのデータベースを使用する際はSQLiteOpenHelperクラスを使います。一般的には下のようなコードになると思います。 public class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context) { super(context, "test.db", null…

クリップボードツール、CopiPeリリース

http://www.androlib.com/android.application.com-matabii-copipe-zAtA.aspx Androidにコピー&ペースト用のツールをリリースしました。 よく使う単語や定型文を登録しておけば、選択するだけでクリップボードにコピーできます。特徴 カテゴリー付きなので…

Intentの凄さ

AndroidにはIntentと呼ばれる概念があり、これを使うことでアプリケーションをまたいでのデータのやり取りが可能になります。 例えば、端末の電話帳データを取得したり、メーラーを立ち上げて送信画面を開いたりすることが出来るのですが、Androidがデフォル…

Android marketにリリース

本日、http://smart.fm/のAPIを利用した語学学習アプリ、「Tango」をリリースしました。smart.fmの学習を簡略化したものをAndroid上で行うことが出来ます。まだまだ機能が荒削りですが、得られたフィードバックを元に改良など続けていきます。 ダウンロード…

ListViewについて

台風の影響でJJUG CCC行けなかったです。飛行機は欠航だし・・・ さて、以前、ListViewの色の変え方という記事を書きましたが、当時はAndroidを触り始めという事もあり、読み返してみてこれは酷いと思ったので書き直してみます。今もまだまだ勉強中ですが。 …

SDK1.6のWVGAについて

SDK1.6がリリースされていたので、新しくサポートされたWVGAの画面サイズを試してみました。まずは1.6のAVDをWVGAで作成して、起動したエミュレータから1.5用に作ってたアプリをそのまま起動。とりあえず何事も無く大きな画面で動いたのだけど、解像度が増え…

サウンドの再生と音量の調整

mp3などで効果音を鳴らしたい場合、 MediaPlayer mp = new MediaPlayer(); mp.setDataSource(PATH_TO_FILE); mp.prepare(); mp.start(); mp.setOnCompletionListener(new OnCompletionListener() { public void onCompletion(MediaPlayer mp) { mp.release()…

画面回転時の挙動

端末を横に傾けると、重力センサで画面も横向きになりますよね。使う分には便利なんだけど、作る側は考えることが増えて大変です。資料も今一整備されていないので、分かってる所まで書いてみます。何が大変かというと、再レイアウトされた時にActivityのラ…

Software KeyboardをActivityに配置する

android-sdkにSoftKeyboardというソフトキーボードのサンプルがあったので見てみました。キーボードアプリを作るのは大変そうだけど、仕組みは単純で、基本的にServiceからKeyboardViewというビューを作り画面に表示するだけです。 このKeyboardViewはViewを…

ListViewで選択行の色を変える2

2009-10-9 書き直しました。 http://d.hatena.ne.jp/isher/20091009前回、選択行の背景の色を変えたので、今度は選択行のテキストの文字色を変えてみます。 android:textColor="#00ffff" これだと選択、非選択に関わらず水色になります。 状態によって色を変…

ListViewで選択行の色を変える

2009-10/9 書き直しました。 http://d.hatena.ne.jp/isher/20091009Androidのレイアウトの中で、ListViewは最も使用場面の多いものの一つだと思います。ただ、多機能なので、ちょっと凝った事しようとすると色々と面倒です。ListViewとAdapterを使うのですが…

ネットワーク接続のチェック方法

WIFIか3Gネットワークが有効な時は接続し、そうでない場合はオフラインモードで動かすなんて事がしたい場合に、現在のネットワークの接続状況を調べる方法です。 public static boolean isConnected(Context context){ ConnectivityManager cm = (Connectivi…

Content Provider入門

Androidでデータを保存するにはContent Providerを使用するのが基本です。端末内のアプリ専用エリアに作成され、アクセス権限を定義すれば他のアプリからも使用可能と夢が広がる機能です。システムのデータもこれで作成されていて、電話帳などにアクセスする…

Android事始め

今年には日本でも発売されるそうなので下調べ。 SDKダウンロードとインストール http://code.google.com/intl/ja/android/ ここからダウンロード出来ます。Intel Macの場合(多分winもmacも)、zipをダウンロードして解凍するだけで終わり。 解凍して出来上が…