2012-06-11 214 views
0

我必須對以下問題:Android電子郵件發送無附件

我想發送一封附有圖像的電子郵件。 我寫了這個代碼:

File file = context.getDir("Files", context.MODE_WORLD_WRITEABLE); 
    File image = new File(file, "image.jpg"); 

    Uri U = Uri.fromFile(image); 
    Intent i = new Intent(Intent.ACTION_SEND); 
    i.setType("image/jpg"); 
    i.putExtra(Intent.EXTRA_STREAM, U); 
    context.startActivity(Intent.createChooser(i, "Email:")); 

電子郵件被髮送,但沒有附件。

有沒有人知道爲什麼電子郵件沒有附件發送?

編輯

我已經找到了答案,我的問題。由於圖像存儲在內部存儲器中,因此它沒有足夠的權限,因此無法通過電子郵件發送。我搬到我的形象externalStorage,現在它的工作:)

感謝, 方舟

回答

1
String smsBody = "Body of the Content"; 
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.setType("image/*"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { "" }); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject of the Mail"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, smsBody); 
emailIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile("mnt/sdCard/SampleImageFloder/TestImage.png")); 
emailIntent.setType("vnd.android.cursor.dir/email"); 
activity.startActivity(Intent.createChooser(emailIntent,"Email:")); 
+0

我已經嘗試了兩個答案,並且沒有人爲我工作。在發送郵件之前,我可以看到該文件已附加到電子郵件中,但它永遠不會收到帶有附件的收件箱中 – Arkde

1

嘗試這一個 -

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
emailIntent.setType("plain/text"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[]{"email"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Test"); 
//has to be an ArrayList 
ArrayList<Uri> uris = new ArrayList<Uri>(); 
//convert from paths to Android friendly Parcelable Uri's 
for (String file : filePaths) 
{ 
    File fileIn = new File(file); 
    Uri u = Uri.fromFile(fileIn); 
    uris.add(u); 
} 
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 
context.startActivity(emailIntent); 

只是看到我的Existing Answer

+0

我有試了兩個答案,沒有人爲我工作。在發送郵件之前,我可以看到該文件已附加到電子郵件中,但它永遠不會收到箱子裏面的附件 – Arkde