我使用下面的代码向电子邮件地址发送电子邮件。当我点击发送按钮时,有一个Toast msg说消息发送...,但是我没有在代码中。它必须是默认的。我的问题是,这是说要发送消息,但没有说明发送消息。我知道它无法检查是否到了,但应该有一个消息说它已被发送。我希望它在未发送时显示错误,但用户不知道这一点。
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"something@gmail.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
i.putExtra(Intent.EXTRA_TEXT , "body of email");
try {
startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(About.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
感谢
答案 0 :(得分:0)
这不可能。由于任何应用程序都可以响应Intent,因此无法保证任何结果代码或结果意图。
请参阅:
Get Mail Sent Notification in onActivityResult "Android"
请参阅:
Trivial: Get confirmation of email sent in android
我在ICS上的个人测试显示两个电子邮件客户端都为resultCode返回0,无论用户是否按下或发送。
答案 1 :(得分:0)
试试这个:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode==1)
{
if(requestCode==1 && resultCode==Activity.RESULT_OK)
{
Toast.makeText(this, "Mail sent.", Toast.LENGTH_SHORT).show();
}
else if (requestCode==1 && resultCode==Activity.RESULT_CANCELED)
{
Toast.makeText(this, "Mail canceled.", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, "Plz try again.", Toast.LENGTH_SHORT).show();
}
}
}