Android で ACTION_SEND インテントを作成し、次のコードで画像ファイルを添付しています。
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_EMAIL, "");
intent.putExtra(Intent.EXTRA_SUBJECT, "Receipt From: XXX");
intent.putExtra(Intent.EXTRA_TEXT, message);
byte[] b = Base64.decode(signature, Base64.DEFAULT); //Where signature is a base64 encoded string
final Bitmap mBitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
String path = Images.Media.insertImage(getContentResolver(), mBitmap, "signature", null);
Uri sigURI = Uri.parse(path);
intent.putExtra(Intent.EXTRA_STREAM, sigURI);
startActivity(Intent.createChooser(intent, "Send Email"));
これは機能し、画像がメールに添付されます。ただし、後で画像を削除するのに問題があります。画像は、DCIM\Camera フォルダーに多数のファイル名で保存されます。
私はもう試した
File tempFile = File(getRealPathFromURI(sigURI)); //a subroutine which gives me the full path
tempFile.delete();
tempFile.delete は true を返しますが、ファイルはまだそこにあります。私が気づいた奇妙なことの 1 つは、保存された画像のファイル サイズが 0 であり、削除しようとする前後の両方で空に見えることです。
メールで送信した後、この画像を適切に削除するにはどうすればよいですか? または、画像を保存せずに添付する別の方法はありますか?
また、ここでの主な質問ではありませんが、画像/添付ファイルの名前を 1375729812685.jpg (または番号が何であれ) から別のものに変更する方法を含めていただければ幸いです。
最後のメモとして、私は HTC Evo で何か違いがあるかどうかをテストしてきました。