2012年4月18日水曜日

githubにfreetypeその他のandroid.mkを公開して

から、sourceに入ってるのを気がついたが、今更消すのも寂しいし、まあいいや。 あ、freetypeしか使ってないので、他のは足りないかも。 一応文字は表示されたけど、他のを作ったら、ちゃんと動くサンプル書こう。 http://github.com/likedual

IntentでGalleryアプリから画像を受け取る

1. <intent-filter>内に受け取りたいintent.actionとdataタイプを追加
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SEND" />
<data android:mimeType="image/*" />
Galleryアプリからはaction.SENDで送られる。action.VIEWはファイラーアプリ等からの開く動作用

受け取り方

GalleryアプリからはACTION_SENDで送られる。
ずいぶん手間取ったけど、結局これで受け取れた。
Intent intnt = getIntent();
String intntAction = intnt.getAction();
Bundle intntExtras = intnt.getExtras();
if( Intent.ACTION_SEND.equals(intntAction) ) {
    Uri uri = (Uri)intntExtras.getParcelable( Intent.EXTRA_STREAM );
    if( uri != null ) {
        InputStream input = getContentResolver().openInputStream(uri);
        Bitmap bmp = BitmapFactory.decodeStream(input);
        input.close();
    }
}
強調している行はMedia.getBitmapと同じなので、そのまま置き換えられる。
    Bitmap bmp = Media.getBitmap( getContentResolver(), uri );
疑問点
送られてくるIntentを、Logに投げると中身が表示されたが、
extras(Bundle)を一覧表示する方法は知らない。
Intent { act=android.intent.action.SEND typ=image/* 
cmp=com.likedual.Property/.PropertyActivity (has extras) }
Uriが返ってきそうな、getIntent().getData()は入ってない。

時間になってしまった。おかしいけど見てる人もいないし、取り敢えず公開しておこう。
ファイラーアプリからは別途受け取る必要があるが、次回の宿題になってしまった。
長期のブランクで、構造化プログラミング未満になってるし、前途多難だな。