2012-10-31 89 views
0

我可以同時獲得Mail和Gmail將多個csv文件附加到電子郵件。使用Android獲取郵件和Gmail郵件的多個附件

當通過郵件發送全部附件交付。
當通過Gmail發送時沒有附件的被遞送。

我已閱讀文檔Send Binary Content。我已經搜索過,但只發現了一個不適用於Mail的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(); 
+0

哎有你解決這個問題? –

+0

@Sanket還沒有找到答案,目前坐在太硬的籃子裏。 – RobCroll

回答

0

下面的代碼的代碼是從我的應用程序的一個片段。據我所知,它適用於GMail和Mail(目前無法驗證)。它看起來基本上像你的解決方案,但有一些小的差異。也許其中一個就是你要找的東西。 :)

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
emailIntent.setType("text/plain"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); 
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); 
+0

感謝forgemo,但沒有運氣。我試着移動setType方法並將其更改爲text/plain。如果確實這個代碼可以與Gmail一起工作,對您如何創建文件感興趣 – RobCroll

0

在這裏,您可以通過下面的代碼我附上在Gmail或郵件圖像文件獲取詳細信息https://stackoverflow.com/a/18225100/942224

....希望它會幫助你

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); 
+0

謝謝Sanket,但我需要發送多個附件,該解決方案只能讓我發送一個附件。這個描述解釋了這一點,但我已經改進了標題,所以現在很清楚。我需要發送多個文件。 – RobCroll

+0

@RobCroll查看編輯答案.. –