如何在Android中发送电子邮件并获得确认

时间:2014-11-20 12:58:43

标签: android

我正在尝试通过意图发送电子邮件,我想在邮件成功发送后调用API或Web服务。我怎么能这样做?

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:?subject=" + emailSubject
        + "&body=" + genericText + " " + genericLink);
intent.setData(data);
startActivityForResult(intent, MAIL_CODE);  

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(resultCode == RESULT_OK) {
        // do some task
    }
}

2 个答案:

答案 0 :(得分:1)

试试这个

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if(requestCode==1)
    {
        if(requestCode==1 && resultCode==Activity.RESULT_OK)    
        {
            Log.e("Mail sent.", e+"");
        }
        else if (requestCode==1 && resultCode==Activity.RESULT_CANCELED)
        {
            Log.e("Mail Cancelled.", e+"");
        }
        else 
        {
            Toast.makeText(this, "Plz try again.", Toast.LENGTH_SHORT).show();
        }
    }   
}

答案 1 :(得分:0)

  

我正在尝试通过意图发送电子邮件,我想在邮件成功发送后调用API或Web服务。我怎么能这样做?

你不能。

首先,您的Intent结构不是一个很好的选择。使用ACTION_SENDTOmailto:式请求的相应附加内容。不要假设所有电子邮件客户端都支持ACTION_VIEW您的特定网址结构。

其次,ACTION_VIEWACTION_SENDTO都不适用于startActivityForResult();他们的JavaDoc条目表明它们没有输出。

第三,用户实际上不必发送电子邮件。所有ACTION_SENDTO都会调出一个电子邮件客户端;用户在那时所做的事情取决于用户,而不是你。