我有一个应用程序,使用以下意图发送电子邮件:
//TODO attach and send here
try {
Log.i(getClass().getSimpleName(), "send task - start");
String address = "emailHere@yahoo.com";
String subject = "Order of " + customer + " for " + date;
String emailtext = "Please check the attached file. Attached file contains order of " + customer;
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { address });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailtext);
ArrayList<Uri> uris = new ArrayList<Uri>();
Uri uriList = Uri.fromFile(orderListFile);
uris.add(uriList);
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
this.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}
catch (Throwable t) {
Toast.makeText(this, "Request failed: " + t.toString(),
Toast.LENGTH_LONG).show();
}
现在,用户选择使用哪个应用程序来发送邮件。然而,一旦选定的电子邮件应用程序接管了控制权,我就无法知道电子邮件是否被正确发送。在这里已经讨论过多次,使用
startActivityForResult()
并没有帮助,因为电子邮件或Gmail应用程序从未发送RESULT_OK
,所以我不知道用户是发送、丢弃还是保存了作为草稿的电子邮件。然而,一种可能的解决方法是检查该电子邮件帐户的已发送项目,并从那里检查用户是否发送了电子邮件。现在,在Android中有没有办法知道电子邮件账户的已发送项目呢?我已经进行了谷歌搜索一个小时,但似乎没有找到任何答案。