Android 2.3.3 用の非常に小さなアプリケーションを開発しています。関連コードの下に、添付ファイルとして jpeg 画像を含む電子メールを (Android 電子メール アプリを介して) 送信したい (SDK エミュレータでのみテスト済み):
public void sendArtwork(View aView){
EditText subj = (EditText)findViewById(R.id.edit_subj);
EditText descr = (EditText)findViewById(R.id.edit_descr);
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("image/jpeg"); // attachment is a jpeg
emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[]{"contribute@unintentional.org"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT,subj.getText().toString()); //get subject from one EditText in the UI
emailIntent.putExtra(Intent.EXTRA_TEXT,descr.getText().toString()); //get body from one EditText in the UI
emailIntent.putExtra(Intent.EXTRA_STREAM, fileURI); // add attachment
startActivityForResult(Intent.createChooser(emailIntent, "Choose Email application:"), EMAIL_CODE);
}
期待どおりに動作します。セレクターを開き、正しいアドレス、件名、テキスト、および添付ファイルを含む電子メールを作成して送信します。
私が達成できない唯一のことは、画像の正しい MIME タイプを設定することです: 添付ファイルは正しく受信されます (ディスクにデタッチして開くことができます) が、コンテンツ タイプがないため、電子メール クライアント (サンダーバード)はプレビューを表示せず、それを開くためのアプリケーションを提供できません。これについて誰かアドバイスがありますか?
----編集
画像ファイルはエラーなしで送信されます。前述のように、PC のディスクに保存し、適切なアプリケーション (Picasa など) を使用して開くと、正しく表示されます。