Android-从Android应用程序发送电子邮件后的结果

Android-从Android应用程序发送电子邮件后的结果,android,email,android-intent,android-activity,onactivityresult,Android,Email,Android Intent,Android Activity,Onactivityresult,可能的重复项:& 我想在我的Android应用程序中发送一封电子邮件 我知道您可以通过以下代码来实现这一点: private void sendEmail(){ Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("message/rfc822"); intent.putExtra(Intent.EXTRA_EMAIL, { "some_email1@gmail.com", "some_email2

可能的重复项:&

我想在我的Android应用程序中发送一封电子邮件

我知道您可以通过以下代码来实现这一点:

private void sendEmail(){
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("message/rfc822");
    intent.putExtra(Intent.EXTRA_EMAIL, { "some_email1@gmail.com", "some_email2@gmail.com" });
    intent.putExtra(Intent.EXTRA_SUBJECT, "My Subject");
    intent.putExtra(Intent.EXTRA_TEXT, "My message");
    try{
        startActivity(Intent.createChooser(intent, "Send E-Mail"));
    }
    catch(ActivityNotFoundException ex){
        Toast.makeText(this, "There are no E-mail Clients installed on your Device.", Toast.LENGTH_LONG).show();
    }
}
我想知道的是,邮件是否成功发送,或者用户是否取消了邮件(或者出现了其他问题)

我确实尝试过改变:

startActivity(Intent.createChooser(intent, "Send E-Mail"));

并添加onActivityResult方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);

    // We come back after the starting Email Activity Client
    if(requestCode == 123){
        // Mail is successfully send:
        if(resultCode == Activity.RESULT_OK){
            // Do something
        }
        else
            // Do something else
        }
    }
}
但是无论成功与否,
Intent.ACTION\u SEND
只给出0的结果代码(等于
Activity.RESULT\u cancelled

所以我的问题是:有没有人知道如何解决这个问题,在使用电子邮件意图时捕获并使用结果还是有人知道从Android应用程序中发送电子邮件的完全不同(自定义)方式,这使我能够使用结果?(请提供代码示例。)

提前感谢您的回复


编辑:将问题的第二部分加粗,以表明这不是一个完全重复的问题。

@AleksG我知道这一点,并已在问题的开头添加了这一点。>>那你为什么还要问一个重复的问题?答案是一样的——你做不到。如果您需要得到结果,那么您必须自己实现电子邮件机制。这并不难,网上有大量的信息-只需搜索@AleksG谢谢你的编辑,你评论的第二部分很有希望。好的,我最终使用了。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);

    // We come back after the starting Email Activity Client
    if(requestCode == 123){
        // Mail is successfully send:
        if(resultCode == Activity.RESULT_OK){
            // Do something
        }
        else
            // Do something else
        }
    }
}