2012-06-11 298 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