Android电子邮件发送验证

时间:2011-05-12 10:00:11

标签: android email

我使用下面的代码向电子邮件地址发送电子邮件。当我点击发送按钮时,有一个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();
        }

感谢

2 个答案:

答案 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();

        }

    }   
}