Android\Intent:发送附有图片附件的电子邮件

Kum*_*mar 17 email android

收件人正在接收电子邮件,但没有附件.这是代码,任何专家都知道我哪里出错了?

 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)));
Run Code Online (Sandbox Code Playgroud)

我明白了:

file://附件路径必须指向file:// sdcard.忽略附件文件://...file名称是MyApp.jpg

我没有得到图像,只是在短信之上.谢谢.

Meh*_*ara 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..."));
Run Code Online (Sandbox Code Playgroud)

  • 我尝试使用它,但收到的电子邮件中缺少附件.知道为什么会这样吗? (4认同)
  • 当您在意图中传递的文件是应用程序的私有文件时,@ Amritpal就是这样。尝试将文件复制到设备上的公共位置,然后与该新URL共享(例如,首先将其复制到“外部存储”文件夹中)。 (2认同)

小智 9

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);
Run Code Online (Sandbox Code Playgroud)