1

ドローアブルフォルダから画像を添付してメールで送信しています。デフォルトの電子メールクライアントから送信すると、添付ファイルに画像拡張子(.png)がなく、ファイル名自体も変更されます。デフォルトの名前(drawableのように)と.png拡張子の画像を送信したい。

これは私のコードです。

    Intent email = new Intent(Intent.ACTION_SEND);
            email.setType("image/png");

            email.putExtra(Intent.EXTRA_EMAIL, new String[] { to });

            email.putExtra(Intent.EXTRA_SUBJECT, "Hey! ");


            email.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://"+ getPackageName() + "/" + R.drawable.ic_launcher));
startActivity(Intent.createChooser(email, "Sending........"));

このコードのおかげで何が摩耗しているのか教えてください。

4

1 に答える 1

1

画像がSDCARDにある場合にのみ、画像をメールに添付できます。そのため、画像をSDにコピーしてから、添付する必要があります。

InputStream in = null;
OutputStream out = null;
try
{
in = getResources().openRawResource(R.raw.ic_launcher);
out = new FileOutputStream(new File(Environment.getExternalStorageDirectory(), "image.png"));
copyFile(in, out);
 in.close();
 in = null;
 out.flush();
out.close();
out = null;
}
catch (Exception e)
                {
                    Log.e("tag", e.getMessage());
                    e.printStackTrace();
                }

private void copyFile(InputStream in, OutputStream out) throws IOException
    {
        byte[] buffer = new byte[1024];
        int read;
        while ((read = in.read(buffer)) != -1)
        {
            out.write(buffer, 0, read);
        }
    }


Intent emailIntent = new Intent(Intent.ACTION_SEND);
                emailIntent.setType("text/html");
                emailIntent.putExtra(Intent.EXTRA_SUBJECT, "File attached");
                Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "image.png"));
                emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
                startActivity(Intent.createChooser(emailIntent, "Send mail..."));
于 2012-10-19T13:48:18.990 に答える