Intent 使ってメイル送信

あまり Intent が得意ではない yamanetoshi です。というか Android 全般がニガ手と言っても過言ではありません。
今日は撮影した画像を flickr に送付なパーツのサンプルを作ってみたりしたので、こちらにて情報 fwd をば。

画像をローカルに書き出した後、以下なソレでメイル下書きなナニを前面表示。

        SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(this.context);
        
        Intent it = new Intent(Intent.ACTION_SEND);
        String [] mailto = { p.getString("edittext_key", "") };
        it.putExtra(Intent.EXTRA_EMAIL, mailto);
        it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
        Uri uri = Uri.parse("file:///sdcard/test.jpg");
        it.putExtra(Intent.EXTRA_STREAM, uri);
        it.setType("image/jpeg");
        context.startActivity(Intent.createChooser(it, "Choose Email Client"));

こーゆーヤリ方を採用するあたりがもの凄い横着だな、って自分でも思うのですが、

  • Intent.EXTRA_EMAIL (宛先) は String の配列の参照を putExtra に渡す
  • Intent.EXTRA_STREAM (添付) は Uri なオブジェクトの参照を putExtra に渡す

というあたりがポイントで、上記の例は送付先なアドレスを PreferenceActivity を使ってナニした文字列を使っております。ただ、取り出す key な文字列がマジックナンバーになってて微妙ですね。

上記を盛り込んでみたらカメラで撮影した後に、何を使います? 的な選択パーツが表示されました。GMail を選択したらきちんとデータが添付された状態で、でした。flickr への正常出力も確認済み。

横着ではありますが

flickr とかだとメイルでデータ投入できる i/f があるからこーゆー形で撮影した画像が簡単にデータ投入できたりする訳でこれも一つの mashup なのでしょうか。
しかしこの方式、撮影したデータが端末にほぼ残りません。これを良いと見るか微妙と見るかは使う人マターなんでしょうが、あなたはどっち側の人間ッスか? (何