0

メールと Gmail の両方で複数の csv ファイルをメールに添付できます。

メールで送信すると、すべての添付ファイルが配信されます。
Gmail で送信した場合、添付ファイルは配信されません。

ドキュメントSend Binary Contentを読みました。検索しましたが、メールでは機能しない Gmail のソリューションしか見つかりませんでした。メールは、ほぼすべてのアプローチに満足しているようです。Gmail は再生したくないだけです。

メールと Gmail の両方で機能する複数の添付ファイルを送信するためのソリューションを見つけた人はいますか?

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
String subject = context.getString(R.string.export_data_email_header);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.setType("text/csv");

ArrayList<Uri> uris = new ArrayList<Uri>();
if (diariesSelected) uris.add(Uri.fromFile(context.getFileStreamPath("diaries.csv")));
...
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

context.startActivity(emailIntent);

そして、ファイルの作成に使用されるコード

 FileOutputStream fos = context.openFileOutput(path, Context.MODE_WORLD_READABLE);
 OutputStreamWriter writer = new OutputStreamWriter(fos);
 writer.append(builder.toString());
 writer.close();
 fos.close();
4

2 に答える 2

0

ここで詳細情報を取得できますhttps://stackoverflow.com/a/18225100/942224

以下のコードを使用して、Gmailまたはメールに画像ファイルを添付しています....お役に立てば幸いです

Intent ei = new Intent(Intent.ACTION_SEND_MULTIPLE);
        ei.setType("plain/text");
        ei.putExtra(Intent.EXTRA_EMAIL, new String[] {"email id"});
        ei.putExtra(Intent.EXTRA_SUBJECT, "That one works");

        ArrayList<String> fileList = new ArrayList<String>();
        fileList.add(Environment.getExternalStorageDirectory()+"/foldername/certi/qualifications.jpg");
        fileList.add(Environment.getExternalStorageDirectory()+"/foldername/certi/certificate.jpg");
        fileList.add(Environment.getExternalStorageDirectory()+"/foldername/Aa.pdf");

        ArrayList<Uri> uris = new ArrayList<Uri>();
        //convert from paths to Android friendly Parcelable Uri's

        for (int i=0;i<fileList.size();i++)
        {
            File fileIn = new File(fileList.get(i));
            Uri u = Uri.fromFile(fileIn);
            uris.add(u);
        }

        ei.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
        startActivityForResult(Intent.createChooser(ei, "Sending multiple attachment"), 12345);
于 2012-11-10T07:58:12.187 に答える
0

次のコードは、私のアプリの 1 つのスニペットです。私が覚えている限りでは、GMail と Mail で動作します (現時点では確認できません)。基本的にはソリューションのように見えますが、いくつかの小さな違いがあります。多分それらの1つはあなたが探しているものです。:)

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "address@mail.com" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "The subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "The actual message");

ArrayList<Uri> attachmentUris = new ArrayList<Uri>();

for (File attachment : attachments) {
    attachmentUris.add(Uri.fromFile(attachment));
}

emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachmentUris);

startActivity(emailIntent);
于 2012-11-06T23:05:16.593 に答える