2013-01-22 114 views
16

收件人正在收到電子郵件,但沒有附件。下面是代碼,哪位高手知道爲什麼我有什麼錯?Android Intent:發送帶有圖片附件的電子郵件

Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND); 

String aEmailList[] = { "mymailgmail.com" }; 
messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList); 

messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
...  
messageIntent.setType("image/jpeg"); 
File downloadedPic = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "MyApp.jpg"); 

messageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic)); 

startActivity(Intent.createChooser(messageIntent, getResources().getString(R.string.chooser_pic))); 

我得到:

文件://附件路徑必須指向文件:// SD卡。忽略附件文件://...file name is MyApp.jpg

我沒有收到圖片,只在文本消息之上。謝謝。

+0

同樣的問題http://stackoverflow.com/questions/31847086/how-to-attach-jpg-or-png-file-to-gmail -or-facebook – Aditya

回答

40

試試下面的代碼...

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.setType("application/image"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{strEmail}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Test Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "From My App"); 
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/Myimage.jpeg")); 
startActivity(Intent.createChooser(emailIntent, "Send mail...")); 
+3

我嘗試過使用它,但收到的電子郵件中缺少附件。任何想法爲何如此? – Amrit

+0

檢查你的附件文件路徑..我認爲這可能是錯誤的。 –

+0

路徑是正確的,並且該文件也被視爲在發件人一端附加了電子郵件。但是一旦電子郵件被髮送,附件在發送者和接收者上都不可見。 – Amrit

8
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailaddress); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
emailIntent.setType("application/image"); 

Uri uri = Uri.parse("file://" + filepath); 
emailIntent.putExtra(Intent.EXTRA_STREAM, uri); 
startActivity(emailIntent); 
+0

有人可以幫我如何使用此代碼從我的資產文件夾發送圖像 – Erum

+1

你可能甚至不需要「的setType」,因爲這將與你已經做「的setType(‘text/html的’)相沖突,對不對? Intent.EXTRA_STREAM似乎指出了附件的類型;至少它在我移除第二個「setType」時適用於我。郵件通過Content-Type:image/jpeg到達目標MTA; name =「photo000001.jpg」在圖像的消息部分。 – idarwin

+0

這對我有效 – adrian4aes

相關問題