N-J*_*JOY 28 android android-intent
我Intent .ACTION_SEND用来获取默认的电子邮件客户端.它工作正常,但现在我需要附加多个文件到电子邮件.
email.putExtra(android.content.Intent.EXTRA_STREAM,...) 只附上最后一个uri添加到它.
那么我可以附加多个文件吗?我认为这可以通过使用来完成Intent.ACTION_SEND_MULTIPLE.这是我正在尝试的代码:
String uri=getScreenShot();
Intent email = new Intent(android.content.Intent.ACTION_SEND);
email.setType("application/octet-stream");
email.putExtra(Intent.EXTRA_STREAM, Uri.parse(uri));
email.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("file:"+csvpath));
alert.dismiss();
ctx.startActivity(Intent.createChooser(email, "Send mail..."));
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Her*_*r K 52
这样可行:
final Intent ei = new Intent(Intent.ACTION_SEND_MULTIPLE);
ei.setType("plain/text");
ei.putExtra(Intent.EXTRA_EMAIL, new String[] {"me@somewhere.nodomain"});
ei.putExtra(Intent.EXTRA_SUBJECT, "That one works");
Run Code Online (Sandbox Code Playgroud)
然后添加文件'uris:
ArrayList<Uri> uris = new ArrayList<Uri>();
ei.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivityForResult(Intent.createChooser(ei, "Sending multiple attachment"), 12345);
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
您可以使用
putParcelableArrayListExtraIntent的方法,如下所示.而不是像这样使用:email.putExtra(Intent.EXTRA_STREAM, Uri.parse(uri));,你可以使用
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);
}
email.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20241 次 |
| 最近记录: |